{ "cells": [ { "cell_type": "markdown", "id": "418fdd77", "metadata": {}, "source": [ "# Cryoscope\n", "\n", "This notebook replicates the Cryoscope protocol in [this paper](https://doi.org/10.1063/1.5133894). Here's the [arxiv link](https://arxiv.org/abs/1907.04818).\n", "\n", "Cryoscope is short for cryogenic oscilloscope, and is used to sample baseband pulses. This can then be used to correct the pulse distortions.\n", "\n", "The experiment in this tutorial is meant to be executed with a Qblox Cluster controlling a flux-tunable transmon system.\n", "\n", "The experiments can also be executed using a dummy Qblox device that is created via an instance of the `Cluster` class, and is initialized with a dummy configuration. However, when using a dummy device, fake data will be generated and analyzed." ] }, { "cell_type": "markdown", "id": "a29fde61", "metadata": {}, "source": [ "## Hardware setup\n", "In this section we configure the hardware configuration which specifies the connectivity of our system." ] }, { "cell_type": "markdown", "id": "1b17d0d3", "metadata": {}, "source": [ "### Configuration file\n", "\n", "This is a template hardware configuration file for a single qubit system (we name the qubit `q0`), with a dedicated flux-control line.\n", "\n", "The hardware setup is as follows, by cluster slot:\n", "- **QCM-RF** (Slot 6)\n", " - Drive line for `q0` using fixed 80 MHz IF.\n", "- **QCM** (Slot 2)\n", " - Flux line for `q0`.\n", "- **QRM-RF** (Slot 8)\n", " - Shared readout line for `q0` using a fixed LO set at 7.5 GHz.\n", "\n", "Note that in the hardware configuration below the mixers are uncorrected, but for high fidelity experiments this should also be done for all the modules." ] }, { "cell_type": "code", "execution_count": 1, "id": "8c7bbc1b", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:16.074302Z", "iopub.status.busy": "2024-10-17T13:11:16.074132Z", "iopub.status.idle": "2024-10-17T13:11:16.080313Z", "shell.execute_reply": "2024-10-17T13:11:16.079657Z" } }, "outputs": [], "source": [ "import json\n", "\n", "with open(\"configs/tuning_transmon_coupled_pair_hardware_config.json\") as hw_cfg_json_file:\n", " hardware_cfg = json.load(hw_cfg_json_file)" ] }, { "cell_type": "markdown", "id": "c0f3cee8", "metadata": {}, "source": [ "### Scan For Clusters\n", "\n", "We scan for the available devices connected via ethernet using the Plug & Play functionality of the Qblox Instruments package (see [Plug & Play](https://qblox-qblox-instruments.readthedocs-hosted.com/en/main/api_reference/tools.html#api-pnp) for more info)." ] }, { "cell_type": "code", "execution_count": 2, "id": "1886987c", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:16.082385Z", "iopub.status.busy": "2024-10-17T13:11:16.082212Z", "iopub.status.idle": "2024-10-17T13:11:16.084913Z", "shell.execute_reply": "2024-10-17T13:11:16.084237Z" } }, "outputs": [], "source": [ "# !qblox-pnp list" ] }, { "cell_type": "code", "execution_count": 3, "id": "1a5d0f0a", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:16.086773Z", "iopub.status.busy": "2024-10-17T13:11:16.086604Z", "iopub.status.idle": "2024-10-17T13:11:16.089487Z", "shell.execute_reply": "2024-10-17T13:11:16.088811Z" } }, "outputs": [], "source": [ "cluster_ip = None # To run this tutorial on hardware, fill in the IP address of the cluster here\n", "cluster_name = \"cluster0\"" ] }, { "cell_type": "markdown", "id": "d9d26857", "metadata": {}, "source": [ "### Connect to Cluster\n", "\n", "We now make a connection with the Cluster." ] }, { "cell_type": "code", "execution_count": 4, "id": "b8911ad4", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:16.091353Z", "iopub.status.busy": "2024-10-17T13:11:16.091183Z", "iopub.status.idle": "2024-10-17T13:11:16.988259Z", "shell.execute_reply": "2024-10-17T13:11:16.987419Z" } }, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "from qcodes.instrument import find_or_create_instrument\n", "\n", "from qblox_instruments import Cluster, ClusterType\n", "\n", "cluster0 = find_or_create_instrument(\n", " Cluster,\n", " recreate=True,\n", " name=cluster_name,\n", " identifier=cluster_ip,\n", " dummy_cfg=(\n", " {\n", " 2: ClusterType.CLUSTER_QCM,\n", " 4: ClusterType.CLUSTER_QRM,\n", " 6: ClusterType.CLUSTER_QCM_RF,\n", " 8: ClusterType.CLUSTER_QRM_RF,\n", " }\n", " if cluster_ip is None\n", " else None\n", " ),\n", ")" ] }, { "cell_type": "markdown", "id": "188c68b4", "metadata": { "lines_to_next_cell": 2 }, "source": [ "### Select the modules we'll use for this experiment" ] }, { "cell_type": "code", "execution_count": 5, "id": "d50a03ac", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:16.990722Z", "iopub.status.busy": "2024-10-17T13:11:16.990465Z", "iopub.status.idle": "2024-10-17T13:11:16.995070Z", "shell.execute_reply": "2024-10-17T13:11:16.994376Z" } }, "outputs": [], "source": [ "def get_module_from_hardware_cfg(\n", " cluster: object, hardware_cfg: dict, module_type: str, match_index: int = 0\n", "):\n", " matching_modules = [\n", " key\n", " for key, value in hardware_cfg[\"hardware_description\"][\"cluster0\"][\"modules\"].items()\n", " if value[\"instrument_type\"] == module_type\n", " ]\n", " module_nr = next(\n", " (\n", " i\n", " for i, module in enumerate(cluster.modules)\n", " if module.name.endswith(f\"module{int(matching_modules[match_index])}\")\n", " ),\n", " None,\n", " )\n", " return module_nr" ] }, { "cell_type": "markdown", "id": "a75035d0", "metadata": {}, "source": [ "Select the appropriate modules for this experiment:\n", "- A QCM baseband module for the flux line\n", "- A QCM-RF module for the XY drive line\n", "- A QRM-RF module for the readout" ] }, { "cell_type": "code", "execution_count": 6, "id": "9fdc9cfd", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:16.997002Z", "iopub.status.busy": "2024-10-17T13:11:16.996843Z", "iopub.status.idle": "2024-10-17T13:11:16.999978Z", "shell.execute_reply": "2024-10-17T13:11:16.999276Z" } }, "outputs": [], "source": [ "flux_module = cluster0.modules[get_module_from_hardware_cfg(cluster0, hardware_cfg, \"QCM\")]\n", "xy_module = cluster0.modules[get_module_from_hardware_cfg(cluster0, hardware_cfg, \"QCM_RF\")]\n", "readout_module = cluster0.modules[get_module_from_hardware_cfg(cluster0, hardware_cfg, \"QRM_RF\")]" ] }, { "cell_type": "markdown", "id": "7cd42a5e", "metadata": {}, "source": [ "## Experiment setup" ] }, { "cell_type": "markdown", "id": "51cf526d", "metadata": {}, "source": [ "### Quantum device settings\n", "Here we initialize our `QuantumDevice` and our qubit parameters, check out this [tutorial](https://quantify-os.org/docs/quantify-scheduler/dev/tutorials/Operations%20and%20Qubits.html) for further details.\n", "\n", "In short, a `QuantumDevice` contains device elements where we save our found parameters." ] }, { "cell_type": "code", "execution_count": 7, "id": "e8068658", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:17.001891Z", "iopub.status.busy": "2024-10-17T13:11:17.001705Z", "iopub.status.idle": "2024-10-17T13:11:18.095435Z", "shell.execute_reply": "2024-10-17T13:11:18.094685Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "from quantify_scheduler.device_under_test.quantum_device import QuantumDevice\n", "\n", "try:\n", " quantum_device = QuantumDevice.from_json_file(\"devices/transmon_device_2q.json\")\n", "except KeyError as error:\n", " if error.args[0].startswith(\"Another instrument has the name:\"):\n", " print(f\"Warning! {error.args[0]}, restart the kernel if you wish to redefine it.\")\n", " else:\n", " raise\n", "q0 = quantum_device.get_element(\"q0\")\n", "q1 = quantum_device.get_element(\"q1\")\n", "quantum_device.hardware_config(hardware_cfg)" ] }, { "cell_type": "markdown", "id": "00c28a6c", "metadata": {}, "source": [ "### Calibrate mixers" ] }, { "cell_type": "code", "execution_count": 8, "id": "010a9749", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.098129Z", "iopub.status.busy": "2024-10-17T13:11:18.097584Z", "iopub.status.idle": "2024-10-17T13:11:18.101254Z", "shell.execute_reply": "2024-10-17T13:11:18.100571Z" } }, "outputs": [], "source": [ "# Calibrate the mixer\n", "xy_module.out0_lo_cal()\n", "readout_module.out0_in0_lo_cal()" ] }, { "cell_type": "markdown", "id": "27b3d3ba", "metadata": {}, "source": [ "### Configure measurement control loop\n", "We will use a `MeasurementControl` object for data acquisition as well as an `InstrumentCoordinator` for controlling the instruments in our setup.\n", "\n", "The `PlotMonitor` is used for live plotting.\n", "\n", "All of these are then associated with the `QuantumDevice`." ] }, { "cell_type": "markdown", "id": "a8351892", "metadata": {}, "source": [ "### Configure measurement control loop\n", "We will use a `MeasurementControl` object for data acquisition as well as an `InstrumentCoordinator` for controlling the instruments in our setup.\n", "\n", "The `PlotMonitor` is used for live plotting.\n", "\n", "All of these are then associated with the `QuantumDevice`." ] }, { "cell_type": "code", "execution_count": 9, "id": "5a28c6b2", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.103202Z", "iopub.status.busy": "2024-10-17T13:11:18.103014Z", "iopub.status.idle": "2024-10-17T13:11:18.322629Z", "shell.execute_reply": "2024-10-17T13:11:18.321956Z" } }, "outputs": [], "source": [ "import logging\n", "\n", "from quantify_core.measurement.control import MeasurementControl\n", "from quantify_core.visualization.pyqt_plotmon import PlotMonitor_pyqt as PlotMonitor\n", "from quantify_scheduler.instrument_coordinator import InstrumentCoordinator\n", "from quantify_scheduler.instrument_coordinator.components.qblox import ClusterComponent\n", "\n", "\n", "def configure_measurement_control_loop(\n", " device: QuantumDevice, cluster: Cluster, live_plotting: bool = False\n", "):\n", " meas_ctrl = find_or_create_instrument(MeasurementControl, recreate=True, name=\"meas_ctrl\")\n", " ic = find_or_create_instrument(InstrumentCoordinator, recreate=True, name=\"ic\")\n", "\n", " # Add cluster to instrument coordinator\n", " ic_cluster = ClusterComponent(cluster)\n", " ic.add_component(ic_cluster)\n", "\n", " if live_plotting:\n", " # Associate plot monitor with measurement controller\n", " plotmon = find_or_create_instrument(PlotMonitor, recreate=False, name=\"PlotMonitor\")\n", " meas_ctrl.instr_plotmon(plotmon.name)\n", "\n", " # Associate measurement controller and instrument coordinator with the quantum device\n", " device.instr_measurement_control(meas_ctrl.name)\n", " device.instr_instrument_coordinator(ic.name)\n", "\n", " return (meas_ctrl, ic)\n", "\n", "\n", "# Only create meas_ctrl, instrument_coordinator if they don't exist yet.\n", "if \"meas_ctrl\" not in globals() and \"instrument_coordinator\" not in globals():\n", " meas_ctrl, instrument_coordinator = configure_measurement_control_loop(quantum_device, cluster0)\n", "else:\n", " logging.debug(\n", " \"meas_ctrl or instrument_coordinator already existed, they have not been reinstantiated.\"\n", " )" ] }, { "cell_type": "markdown", "id": "f40caf1f", "metadata": {}, "source": [ "### Set data directory\n", "This directory is where all of the experimental data as well as all of the post processing will go." ] }, { "cell_type": "code", "execution_count": 10, "id": "abf36bfe", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.325255Z", "iopub.status.busy": "2024-10-17T13:11:18.324800Z", "iopub.status.idle": "2024-10-17T13:11:18.328448Z", "shell.execute_reply": "2024-10-17T13:11:18.327756Z" } }, "outputs": [], "source": [ "import quantify_core.data.handling as dh\n", "\n", "# Enter your own dataset directory here!\n", "dh.set_datadir(Path(\"example_data\").resolve())" ] }, { "cell_type": "markdown", "id": "f196f6e3", "metadata": {}, "source": [ "### Configure external flux control\n", "We need to have some way of controlling the external flux.\n", "\n", "This can be done by setting an output bias on a QCM baseband module of the cluster which is then connected to the flux-control line.\n", "\n", "Here we are nullifying the external flux on the qubit." ] }, { "cell_type": "code", "execution_count": 11, "id": "22d7a239", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.330384Z", "iopub.status.busy": "2024-10-17T13:11:18.330206Z", "iopub.status.idle": "2024-10-17T13:11:18.335063Z", "shell.execute_reply": "2024-10-17T13:11:18.334346Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "# hardware_cfg[\"connectivity\"][\"graph\"] contains a graph of how each physical output port\n", "# connects to the device.\n", "# Here we select the outputs that correspond to the flux, and then create a dict with\n", "# a key:value pair `q*`:`cluster*.module*.out*_offset`\n", "flux_settables = {\n", " element[1].split(\":\")[0]: eval(\n", " \".\".join(element[0].split(\".\")[:2]) + f\".out{element[0][-1]}_offset\"\n", " )\n", " for element in hardware_cfg[\"connectivity\"][\"graph\"]\n", " if element[1][-3:] == \":fl\"\n", "}\n", "\n", "for flux_settable in flux_settables.values():\n", " flux_settable.inter_delay = 100e-9 # Delay time in seconds between consecutive set operations.\n", " flux_settable.step = 0.3e-3 # Stepsize in V that this Parameter uses during set operation.\n", " flux_settable() # get before set to avoid jumps\n", " flux_settable(0.0)" ] }, { "cell_type": "markdown", "id": "25599b2a", "metadata": {}, "source": [ "## Experiment\n", "\n", "As in the single qubit tuneup tutorial, the sweep setpoints for all experiments in this section are only examples. The sweep setpoints should be changed to match your own system.\n", "In this section we assume that each individual qubit has already been characterized, and that they have been biased to their sweetspots.\n", "\n", "The Cryoscope method allows us to \"capture\" the flux pulse similar to an oscilloscope. It does this by first setting up two Ramsey-style experiments in which the gap between the two pi pulses is fixed: one where the second pi half pulse has the same phase, and another where the second pi half pulse is 90 degrees phase shifted. This allows us to measure the phase of the qubit on the equator of the Bloch sphere. In between the two pi half pulses, a flux pulse of small incremental duration is played in each iteration of the Ramsey style experiment, while the rest of the time between the pip half pulses is just idle time.\n", "\n", "The flux pulse changes the qubit frequency while it is played, and the time integral of this frequency change gives the total phase accrued by the qubit. If we measure this cumulative phase for small incremental changes in the duration of the flux pulse, then we can effectively work out the frequency change in the qubit over time as the flux pulse is played by taking the derivative of the phase accrued vs time. Then using an already measured flux arc (qubit frequency vs flux), we can convert this frequency change over time to the actual flux seen by the qubit over time." ] }, { "cell_type": "code", "execution_count": 12, "id": "17dfd003", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.337129Z", "iopub.status.busy": "2024-10-17T13:11:18.336937Z", "iopub.status.idle": "2024-10-17T13:11:18.345425Z", "shell.execute_reply": "2024-10-17T13:11:18.344701Z" } }, "outputs": [], "source": [ "import numpy as np\n", "\n", "from quantify_scheduler.device_under_test.quantum_device import DeviceElement\n", "from quantify_scheduler.operations.gate_library import X90, Y90, Measure, Reset, X\n", "from quantify_scheduler.operations.pulse_library import IdlePulse, SquarePulse\n", "from quantify_scheduler.schedules.schedule import Schedule\n", "\n", "\n", "def cryoscope_sched(\n", " qubit: DeviceElement,\n", " time_axis: np.ndarray,\n", " x_or_y_axis: np.ndarray,\n", " amplitude: float = 0.1,\n", " start_pad: float = 40e-9,\n", " end_pad: float = 100e-9,\n", " repetitions: int = 1,\n", ") -> Schedule:\n", " \"\"\"\n", " Generate a schedule for performing a Cryoscope experiment.\n", "\n", " Parameters\n", " ----------\n", " qubit\n", " The name of the qubit e.g., :code:`\"q0\"` to perform the experiment on.\n", " time_axis\n", " The time axis for which the cryoscope experiment is run.\n", " x_or_y_axis\n", " Defines the pi half pulse after the wait time as an X90 or Y90.\n", " amplitude\n", " The amplitude of the flux pulse.\n", " start_pad\n", " The starting pad time of the flux pulse.\n", " end_pad\n", " The ending pad time of the flux pulse.\n", " repetitions\n", " The amount of times the Schedule will be repeated.\n", "\n", " Returns\n", " -------\n", " :\n", " An experiment schedule.\n", "\n", " \"\"\"\n", " schedule = Schedule(\"Cryoscope\", repetitions)\n", "\n", " # Calculate the additional time required to make\n", " # one iteration take a multiple of 4 ns to complete.\n", " idle_pulse_time = (\n", " 4e-9\n", " - (\n", " qubit.reset.duration()\n", " + start_pad\n", " + time_axis[-1] # Gap between pi half pulses excluding padding.\n", " + end_pad\n", " + 2 * qubit.rxy.duration()\n", " + qubit.measure.pulse_duration()\n", " )\n", " % 4e-9\n", " )\n", "\n", " # Create a dict x_or_y_op that assigns an X or Y gate to the binary keys\n", " x_or_y_op = {0: X90(qubit.name), 1: Y90(qubit.name)}\n", "\n", " # This IdlePulse is needed to have a starting point relative\n", " # to which a relative time can be assigned to the Reset pulse.\n", " schedule.add(IdlePulse(4e-9))\n", " # Loop through the time axis. The last point is not used because\n", " # it is used for the calibration points later.\n", " for i, (time, x_or_y) in enumerate(zip(time_axis[:-2], x_or_y_axis[:-2])):\n", " # Wait for additional time calculated above and then Reset the qubit.\n", " schedule.add(Reset(qubit.name), label=f\"Reset {i}\", rel_time=idle_pulse_time)\n", " # Move the qubit to the equator on the bloch sphere.\n", " pi_half = schedule.add(X90(qubit.name))\n", " if time > 0:\n", " # Add the flux pulse of time t to the schedule\n", " schedule.add(\n", " SquarePulse(\n", " amp=amplitude, duration=time, port=qubit.ports.flux(), clock=\"cl0.baseband\"\n", " ),\n", " ref_op=pi_half,\n", " rel_time=start_pad,\n", " )\n", " # Wait for the gap time and play the second pi half pulse.\n", " # This pi half pulse is either an X90 or Y90.\n", " schedule.add(\n", " x_or_y_op[x_or_y], ref_op=pi_half, rel_time=start_pad + time_axis[-1] + end_pad\n", " )\n", " # Measure the qubit.\n", " schedule.add(Measure(qubit.name, acq_index=i), label=f\"Measurement {i}\")\n", "\n", " # Calibration points measured by preparing ground and excited states.\n", " schedule.add(Reset(qubit.name), label=\"Reset Cal 0\")\n", " schedule.add(Measure(qubit.name, acq_index=i + 1), label=\"Calibration 0\")\n", " schedule.add(Reset(qubit.name), label=\"Reset Cal 1\")\n", " schedule.add(X(qubit.name))\n", " schedule.add(Measure(qubit.name, acq_index=i + 2), label=\"Calibration 1\")\n", "\n", " return schedule" ] }, { "cell_type": "markdown", "id": "968a8ef6", "metadata": {}, "source": [ "### Create a CryoscopeAnalysis class\n", "This class extends the class `SingleQubitTimedomainAnalysis` from `quantify_core.analysis.single_qubit_timedomain`:\n", "- Specify that the `run()` method uses calibration points\n", "- Extend the `process_data()` method to populate `self.dataset_processed` with an `xarray` dataset:\n", " - coords: `\"Time (ns)\"`\n", " - axis: `\"frequency_change\"`\n", " - axis: `\"reconstructed_phi\"`\n", "- Add method `create_figures()`" ] }, { "cell_type": "code", "execution_count": 13, "id": "6f2398b0", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.347536Z", "iopub.status.busy": "2024-10-17T13:11:18.347305Z", "iopub.status.idle": "2024-10-17T13:11:18.373349Z", "shell.execute_reply": "2024-10-17T13:11:18.372722Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "from typing import Callable\n", "\n", "import matplotlib.pyplot as plt\n", "from scipy.signal import savgol_filter\n", "from xarray.core.dataset import Dataset\n", "\n", "from quantify_core.analysis.single_qubit_timedomain import SingleQubitTimedomainAnalysis\n", "from quantify_core.visualization.mpl_plotting import (\n", " set_suptitle_from_dataset,\n", " set_xlabel,\n", " set_ylabel,\n", ")\n", "\n", "\n", "class CryoscopeAnalysis(SingleQubitTimedomainAnalysis):\n", " \"\"\"\n", " Analysis class for the Cryoscope experiment.\n", "\n", " This class extends the SingleQubitTimedomainAnalysis class, which in turn extends the\n", " BaseAnalysis class:\n", " - BaseAnalysis.run() runs all steps in the AnalysisSteps class:\n", " 1. process_data # Empty\n", " 2. run_fitting # Empty\n", " 3. analyze_fit_results # Empty\n", " 4. create_figures # Empty\n", " 5. adjust_figures # Defined\n", " 6. save_figures # Defined\n", " 7. save_quantities_of_interest # Defined\n", " 8. save_processed_dataset # Defined\n", " 9. save_fit_results # Defined\n", " - SingleQubitTimedomainAnalysis extends BaseAnalysis:\n", " - run() defines self.calibration_points\n", " - process_data() populates dataset_processed.S21 and dataset_processed.pop_exc\n", " - CryoscopeAnalysis extends SingleQubitTimedomainAnalysis:\n", " - process_data() is extended by calculating:\n", " - x_vals, y_vals\n", " - unfiltered_phase\n", " - filtered_phase\n", " - unwrapped_phase\n", " - phase_derivative\n", " - frequency_change\n", " - reconstructed_phi\n", " - create_figures() is defined\n", " \"\"\"\n", "\n", " def __init__( # noqa: D107\n", " self,\n", " dataset: Dataset = None,\n", " tuid: str = None,\n", " label: str = \"\",\n", " settings_overwrite: dict = None,\n", " plot_figures: bool = True,\n", " frequency_change_to_flux: Callable = None,\n", " savgol_filter_params: dict = {\"window_length\": 2, \"polyorder\": 1},\n", " ) -> None:\n", " super().__init__(dataset, tuid, label, settings_overwrite, plot_figures)\n", " self.frequency_change_to_flux = frequency_change_to_flux\n", " self.savgol_filter_params = savgol_filter_params\n", "\n", " def run(self):\n", " \"\"\"\n", " Run the SingleQubitTimedomainAnalysis with calibration_points.\n", "\n", " This removes the calibration points (last two) and converts\n", " the rest of the IQ values to a population (pop_exc).\n", " \"\"\"\n", " return super().run(calibration_points=True)\n", "\n", " def process_data(self): # noqa: D102\n", " super().process_data()\n", "\n", " # Translate and scale the populations from X and Y measurements\n", " # from the range [0,1] to [-1,1]\n", " x_vals = 2 * (self.dataset_processed[\"pop_exc\"].values[:-2:2] - 0.5)\n", " y_vals = 2 * (self.dataset_processed[\"pop_exc\"].values[1:-2:2] - 0.5)\n", "\n", " # Find phase from the X,Y coordinates\n", " unfiltered_phase = np.angle(x_vals + 1j * y_vals)\n", " # Store the unfiltered phase for debugging purposes\n", " self.dataset_processed[\"unfiltered_phase\"] = ([\"t\"], unfiltered_phase)\n", "\n", " # First unwrap the phase\n", " unwrapped_phase = np.unwrap(unfiltered_phase)\n", " # Store the unwrapped phase for debugging purposes\n", " self.dataset_processed[\"unwrapped_phase\"] = ([\"t\"], unwrapped_phase)\n", "\n", " # Use the savgol_filter to both filter and take the derivative of the unwrapped phase.\n", " # The parameters of the savgol_filter may need to be changed after this is run on an\n", " # actual device.\n", " filtered_phase_derivative = savgol_filter(\n", " unwrapped_phase,\n", " window_length=self.savgol_filter_params[\"window_length\"],\n", " polyorder=self.savgol_filter_params[\"polyorder\"],\n", " deriv=1,\n", " )\n", "\n", " # Store the filtered phase derivative for debugging purposes\n", " self.dataset_processed[\"filtered_phase_derivative\"] = ([\"t\"], filtered_phase_derivative)\n", "\n", " # Rescale the filtered phase derivative to units of frequency change\n", " frequency_change = filtered_phase_derivative / (\n", " self.dataset_processed.x1[2].values - self.dataset_processed.x1[0].values\n", " )\n", " # Store the frequency change\n", " self.dataset_processed[\"frequency_change\"] = ([\"t\"], frequency_change)\n", "\n", " # if frequency_change_to_flux is provided, convert the frequency to flux (reconstructed_phi) and plot this.\n", " if self.frequency_change_to_flux is not None:\n", " reconstructed_phi = self.frequency_change_to_flux(frequency_change)\n", " self.dataset_processed[\"reconstructed_phi\"] = ([\"t\"], reconstructed_phi)\n", " else:\n", " print(\n", " \"frequency_change_to_flux was not provided, reconstructed_phi has not been calculated.\"\n", " )\n", "\n", " def create_figures(self): # noqa: D102\n", " fig, ax = plt.subplots()\n", " fig_id = \"Cryoscope\"\n", " self.figs_mpl[fig_id] = fig\n", " self.axs_mpl[fig_id] = ax\n", "\n", " # if frequency_change_to_flux is provided, plot it.\n", " if self.frequency_change_to_flux is not None:\n", " ax.plot(\n", " 1e9 * self.dataset_processed[\"reconstructed_phi\"].coords[\"t\"],\n", " self.dataset_processed[\"reconstructed_phi\"],\n", " label=\"Measured\",\n", " )\n", " set_ylabel(r\"Reconstructed $\\Phi/\\Phi_0$\")\n", " # if frequency_change_to_flux is not provided, plot the frequency change.\n", " else:\n", " ax.plot(\n", " 1e9 * self.dataset_processed[\"frequency_change\"].coords[\"t\"],\n", " self.dataset_processed[\"frequency_change\"] / 1e6,\n", " label=\"Measured\",\n", " )\n", " set_ylabel(\"Frequency change (MHz)\")\n", " set_xlabel(\"Time (ns)\")\n", " set_suptitle_from_dataset(fig, self.dataset)" ] }, { "cell_type": "markdown", "id": "e3e59158", "metadata": { "lines_to_next_cell": 2 }, "source": [ "### Define the flux dependence of the qubit frequency\n", "This is qubit specific, and assumes that the qubit has already been characterized. In the simplest case of a symmetric qubit (i.e. one with identical JJs in the SQUID), only $E_\\text{J}$ and $E_\\text{C}$ need to be provided." ] }, { "cell_type": "code", "execution_count": 14, "id": "0fae896d", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.375335Z", "iopub.status.busy": "2024-10-17T13:11:18.375152Z", "iopub.status.idle": "2024-10-17T13:11:18.380288Z", "shell.execute_reply": "2024-10-17T13:11:18.379606Z" } }, "outputs": [], "source": [ "def flux_to_frequency_change(flux: np.ndarray):\n", " \"\"\"\n", " Convert frequency to flux.\n", "\n", " Currently this assumes a symmetric qubit and fixed parameters.\n", "\n", " Args:\n", " ----\n", " flux (np.ndarray): an array of flux values, in units of flux quantum\n", "\n", " \"\"\"\n", " h = 1 / (2 * np.pi)\n", " e_c = h * 300e6\n", " e_j = (h * q0.clock_freqs.f01() + e_c) ** 2 / (8 * e_c)\n", " return (1 / h) * (\n", " np.sqrt(8 * e_j * e_c * np.abs(np.cos(np.pi * flux))) - e_c\n", " ) - q0.clock_freqs.f01()\n", "\n", "\n", "def frequency_change_to_flux(freq_change: np.ndarray):\n", " r\"\"\"\n", " Convert flux to frequency.\n", "\n", " \\Phi(\\tau) = \\pm \\Phi_0/\\pi \\arccos((Ec+h*freq_change)**2/(8*Ej*Ec)),\n", " or in units of flux quantum:\n", " |\\Phi(\\tau)/\\Phi_0| = arccos((Ec+h*freq_change)**2/(8*Ej*Ec))/pi.\n", " \"\"\"\n", " # Assuming the qubit is parked at the maximum frequency, we can clip positive frequency changes to zero\n", " freq_change = np.clip(freq_change, None, 0)\n", " h = 1 / (2 * np.pi)\n", " e_c = h * 300e6\n", " e_j = (h * q0.clock_freqs.f01() + e_c) ** 2 / (8 * e_c)\n", " return (\n", " np.arccos((h * (q0.clock_freqs.f01() + freq_change) + e_c) ** 2 / (8 * e_j * e_c)) / np.pi\n", " )" ] }, { "cell_type": "markdown", "id": "db5094b6", "metadata": {}, "source": [ "### Define the shape of the flux pulse\n", "- When testing with a dummy cluster, this should mimic the distortions of the cables.\n", "- When running on a real device, this should be a true step function." ] }, { "cell_type": "code", "execution_count": 15, "id": "e67d429e", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.382199Z", "iopub.status.busy": "2024-10-17T13:11:18.382007Z", "iopub.status.idle": "2024-10-17T13:11:18.388335Z", "shell.execute_reply": "2024-10-17T13:11:18.387635Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "from qblox_instruments.simulations import exponential_overshoot_correction\n", "\n", "\n", "def flux_pulse_shape(t: np.ndarray):\n", " \"\"\"\n", " Shape of the flux pulse send to the qubit.\n", "\n", " Predistortion calculated using the Qblox simulator for the exponential overshoot correction\n", " using values in the cluster to simulate the real time predistortions,\n", " and an exponential overshoot distortion is added to the signal\n", " that is fixed to simulate a real distortion.\n", " \"\"\"\n", " signal = 0.1 * (1 + 0.05 * np.exp(-t / 72e-9))\n", " signal[np.where(t <= 0)] = 0.0\n", " return exponential_overshoot_correction(\n", " signal,\n", " flux_module.out0_exp0_amplitude(),\n", " max(flux_module.out0_exp0_time_constant(), 6),\n", " )" ] }, { "cell_type": "markdown", "id": "207eed06", "metadata": { "lines_to_next_cell": 2 }, "source": [ "### Define fake data when running on a dummy cluster" ] }, { "cell_type": "code", "execution_count": 16, "id": "49103eaf", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.390198Z", "iopub.status.busy": "2024-10-17T13:11:18.390009Z", "iopub.status.idle": "2024-10-17T13:11:18.395027Z", "shell.execute_reply": "2024-10-17T13:11:18.394362Z" } }, "outputs": [], "source": [ "def get_fake_cryoscope_data():\n", " \"\"\"Convert the flux pulse shape to cryoscope data.\"\"\"\n", " # Convert the flux pulse shape to frequency change.\n", " freq_change = flux_to_frequency_change(flux_pulse_shape(time_axis()[::2]))\n", " freq_change -= freq_change[0]\n", " cumulative_phase_change = np.cumsum(2 * np.pi * freq_change) * np.diff(time_axis()[:4:2])[0]\n", " # Define IQ values for ground state and excited state\n", " ground_state = 0\n", " excited_state = 1 + 5.0j\n", " # compute the IQ values for the X measurements\n", " x_measurements = (np.cos(cumulative_phase_change) * 0.5 + 0.5) * excited_state\n", " # compute the IQ values for the Y measurements\n", " y_measurements = (np.sin(cumulative_phase_change) * 0.5 + 0.5) * excited_state\n", "\n", " # Assign the last of the x and y measurements\n", " # to ground and excited state IQ values\n", " x_measurements[-1] = ground_state\n", " y_measurements[-1] = excited_state\n", "\n", " # reshape to the way that an actual measurement would look like\n", " result = np.concatenate((x_measurements, y_measurements)).reshape(2, -1).T.flatten()\n", "\n", " return [np.real(result), np.imag(result)]\n", "\n", "\n", "def fake_get():\n", " \"\"\"Run the previous get function but only return fake data.\"\"\"\n", " gettable.old_get()\n", " return get_fake_cryoscope_data()" ] }, { "cell_type": "markdown", "id": "2f9a097b", "metadata": {}, "source": [ "### Define the schedule gettables for the measurement" ] }, { "cell_type": "code", "execution_count": 17, "id": "9816f227", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.396909Z", "iopub.status.busy": "2024-10-17T13:11:18.396746Z", "iopub.status.idle": "2024-10-17T13:11:18.402375Z", "shell.execute_reply": "2024-10-17T13:11:18.401734Z" } }, "outputs": [], "source": [ "from qcodes import ManualParameter\n", "\n", "from quantify_scheduler.gettables import ScheduleGettable\n", "\n", "time_axis = ManualParameter(name=\"time_axis\", unit=\"(ns)\", label=\"Time\")\n", "time_axis.batched = True\n", "\n", "x_or_y = ManualParameter(name=\"x_or_y\", unit=\"\", label=\"axis\")\n", "x_or_y.batched = True\n", "\n", "cryoscope_kwargs = {\n", " \"time_axis\": time_axis,\n", " \"x_or_y_axis\": x_or_y,\n", " \"amplitude\": 0.156,\n", " \"qubit\": quantum_device.get_element(\"q0\"),\n", "}\n", "\n", "gettable = ScheduleGettable(\n", " quantum_device,\n", " schedule_function=cryoscope_sched,\n", " schedule_kwargs=cryoscope_kwargs,\n", " real_imag=True,\n", " batched=True,\n", ")\n", "\n", "# replace the get method for the gettable in case the cluster is a dummy\n", "if cluster_ip is None:\n", " gettable.old_get = gettable.get\n", " gettable.get = fake_get\n", "\n", "# Set the number of repetitions (or averages)\n", "quantum_device.cfg_sched_repetitions(1)" ] }, { "cell_type": "markdown", "id": "f730e38a", "metadata": {}, "source": [ "### Define the time spacing between pulses\n", "\n", "This allows for transients to decay." ] }, { "cell_type": "code", "execution_count": 18, "id": "17bba19b", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.404420Z", "iopub.status.busy": "2024-10-17T13:11:18.404230Z", "iopub.status.idle": "2024-10-17T13:11:18.407382Z", "shell.execute_reply": "2024-10-17T13:11:18.406719Z" } }, "outputs": [], "source": [ "from quantify_scheduler.backends.qblox import constants\n", "\n", "constants.PULSE_STITCHING_DURATION = 16e-9" ] }, { "cell_type": "markdown", "id": "360c61ce", "metadata": {}, "source": [ "### Measure the phase vs the duration of the detuning flux pulse" ] }, { "cell_type": "code", "execution_count": 19, "id": "0f8b7ed1", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.409255Z", "iopub.status.busy": "2024-10-17T13:11:18.409092Z", "iopub.status.idle": "2024-10-17T13:11:18.413370Z", "shell.execute_reply": "2024-10-17T13:11:18.412730Z" } }, "outputs": [], "source": [ "time_axis_setpoints = np.arange(-5e-9, 200e-9, 1e-9)\n", "x_or_y_setpoints = [0, 1]\n", "meas_ctrl.settables([x_or_y, time_axis])\n", "meas_ctrl.setpoints_grid([x_or_y_setpoints, time_axis_setpoints])\n", "# Pass the ScheduleGettable class with schedule_function=cryoscope_sched on to the measurement control\n", "meas_ctrl.gettables(gettable)\n", "hw_cfg = quantum_device.hardware_config()" ] }, { "cell_type": "code", "execution_count": 20, "id": "667d1f6c", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:18.415085Z", "iopub.status.busy": "2024-10-17T13:11:18.414920Z", "iopub.status.idle": "2024-10-17T13:11:20.225158Z", "shell.execute_reply": "2024-10-17T13:11:20.224389Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting batched measurement...\n", "Iterative settable(s) [outer loop(s)]:\n", "\t --- (None) --- \n", "Batched settable(s):\n", "\t x_or_y, time_axis \n", "Batch size limit: 410\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.9/site-packages/quantify_scheduler/backends/types/qblox.py:1220: ValidationWarning: Setting `auto_lo_cal=on_lo_interm_freq_change` will overwrite settings `dc_offset_i=0.0` and `dc_offset_q=0.0`. To suppress this warning, do not set either `dc_offset_i` or `dc_offset_q` for this port-clock.\n", " warnings.warn(\n", "/usr/local/lib/python3.9/site-packages/quantify_scheduler/backends/types/qblox.py:1235: ValidationWarning: Setting `auto_sideband_cal=on_interm_freq_change` will overwrite settings `amp_ratio=1.0` and `phase_error=0.0`. To suppress this warning, do not set either `amp_ratio` or `phase_error` for this port-clock.\n", " warnings.warn(\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0c0845b0e1084f669c126d1b5c853a91", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Completed: 0%| [ elapsed time: 00:00 | time left: ? ] it" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3IAAAJqCAYAAABuJXKjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACfq0lEQVR4nOzdeVxUVePH8e8AAoKAuyyCirhlmKaZ5b6US26ZVqKZlVlmm+Zjtlr9Sm21xafUnp42l1bXTHvczdQWtdRKxX3BXQERZJv7+wMZRZhhgDsDY5/368VLuPfcc869DDhfzj3nWgzDMAQAAAAA8Bhepd0BAAAAAEDREOQAAAAAwMMQ5AAAAADAwxDkAAAAAMDDEOQAAAAAwMMQ5AAAAADAwxDkAAAAAMDDEOQAAAAAwMMQ5AAAAADAwxDkAAAAAMDDEOQAlLr09HRNmjRJ7du3V82aNWWxWGwf3t7eqlWrljp37qxFixbJMIzS7i7KkKSkJIWEhOR5zdj78Pf3V3x8fGl32W06duyooKAg/f7776XdFY+WkpKiunXr6rnnnjOlvl27dumuu+5S06ZNFRQUJIvFIh8fH8XExKhr16765ptviv17bvv27brmmms0derUfPvGjx/v1M+JxWJRtWrVlJmZma+OZcuWqVOnTgX+nq5bt67i4uK0Z8+eYvUdQNH5lHYHAPyznTlzRjfccIN2796tfv36qW3btqpevbq8vHL+zpSVlaXjx49r9erV6tmzp1599VWNHTu2lHuNsuLMmTNKTk7WyJEj1bBhQ4dl/f39FRkZ6aaelb7Vq1fLMAxt2bJFTZs2Le3uuM1vv/2mM2fO6KabbjKlvtmzZ2vPnj169913NW7cOAUGBha7rm+//VaDBg1SaGioevTooTvuuENBQUHKzMzU4cOHtXHjRg0YMEC33367vvjiC1ksFqfr3rVrlzp37qyEhAQdOnQo3/79+/erTp06Gj16dKF1Va1aVeXKlcuzbebMmRo8eLCaN2+uIUOGKDQ0NM/v6cOHD2vWrFlq1qyZ/vrrL0VERDjddwDFZABAKRozZowREhJi/PXXXw7LWa1W41//+pdRvnx549SpU27qHcq6vXv3GpKMpUuXlnZXypzhw4cbzZs3N3bt2lXaXXGroUOHGm3atDGtvubNmxt+fn6GJOM///lPses5d+6cERERYfTr189ITU21W27mzJmGJGPhwoVO1713714jKirKaNSokVGlShXjmWeeyVfm7rvvNlq3bl2svmdnZxuRkZFG165djaysLLvlzpw5Y4SFhRnDhg0rVjsAioZbKwGUGsMw9P7772vUqFFq1KiRw7IWi0VPPvmk0tLS9Pfff7uph4DnmjZtmn777TfVrVu3tLviVoZhmHYL9saNG7Vx40Y99dRTio6O1rRp04pd18KFC5WQkKA333xT5cuXt1suLi5OHTp00JQpU5yq9/Tp0+rUqZMCAwO1cuVKVahQodh9tOfYsWM6ePCgRowYIW9vb7vlKlasqLi4OK1du9b0PgDIjyAHoNQcO3ZMqampuuGGG5wqX6VKFdWpU0fHjh1zcc8AQJo+fbp8fHw0fPhwPfjgg/r111+LPedw7969CgsLU+3atQste+ONN2rv3r1O1Xv27Fm1aNFCK1euVI0aNYrVt8Ls379fkhQVFVVo2RYtWujw4cPMZwbcgCAHoNQcOHBAkhQWFub0MatWrVLPnj3zbEtMTFRoaKg2btwowzD05Zdf6qabblJYWJjCw8NltVolSX///bdq1Kih06dPO2zjr7/+clju999/V9++fRUTE6Ny5crZJvxHRESoffv2Dhcr+PXXX9WxY0dVrFgx3wIDwcHB6tChg37++We7fVu9erW6du2q2rVry9vb23Zs9erV1bFjRy1YsKDA4wzD0Lfffqv27dsrIiLCdly5cuUUExOjPn36aPPmzQUem5iYqBo1amjbtm1av3697rzzTkVGRsrPz08Wi0U1atTQjTfeqGnTpik7O9tu3/ft26fBgwerUaNGtmMtFotCQ0PVtm1bff75525782cYhrp162b3ekk5ozGtW7dWUlJSnu1169bVkiVL9Pfff+vee+9VdHS0ypcvL4vFoipVqui6667ThAkTlJ6ebrfuEydOaMSIEWrSpIkCAgJs16Jq1aq64YYbNHnyZGVlZRV47IsvvqgBAwZIyvkZGjNmjBo2bKjAwED9+9//tpX7+OOP1a5du3zH534/t27dqrfeeksNGjSwvY6rV6+uu+66S8ePH5ckzZgxQ82aNbP1sWrVqmrTpo2WLVtm99ysVqs++ugjtW7dWqGhoXkWm2ncuLGGDh1a4BwuKe/P3rp163TnnXeqZs2aKleunMqVK6d69eqpb9++BYapzp07y2Kx6NNPP9VPP/2U52erOPPlzp49q1mzZqlfv34KCwvTPffcIz8/v2KPyu3fv9/p33URERHat2+fUz8PtWrV0ldffVXkEJeenm6bT3fs2DGHbZ0/f16SnBrtu+222/THH38UaX4fgOJhsRMApSY1NVWSHN5mdLmC/iKcmJioY8eO6dChQ3rzzTf1zTffqEePHho8eLBatGhhm5B/7NgxHT9+XKdPn1blypXttnH8+HG75ZYuXapu3bopJiZGffv2VUREhMqVKyer1arjx49r/fr1GjBggJ5++mm98soreY49c+aMunbtqjp16mjs2LEKDg7Os//IkSOaP3++evTooR07dqhq1ap59n/88ce69957df3112vgwIEKDQ2Vt7e3srKytGfPHv3666/q27evFixYkC/sjh8/Xv/3f/+njh076p577rEtKJO7yMJ3332nFi1aaNGiRerWrVu+63v8+HG99tprmjFjhq6//nrdfvvtCg0Nlb+/v06dOqU//vhDDz74oNasWaOZM2fmu6Z///23mjdvrooVK2rAgAGKjIyUv7+/DMPQyZMntXnzZg0ZMkTr16/X+++/b/d7Y5bc4HzXXXdp48aNiomJybP/5MmT6tevn6pVq5ZvcYs9e/bo008/1bfffqsGDRqoV69eCgsLU2BgoJKSkvT333/r+eef1+LFi7VmzZp8b2hPnjypq666SpmZmYqLi9PgwYMVEBAgwzCUmJiov//+W2PGjNHSpUu1aNGifMfv3btXe/fu1dq1a9WnTx9Vr15dbdq0Ud26dXXLLbfYyu3fv7/AFQRzv58PP/yw9uzZo/79+ysqKkpeXl6Kj4/Xf//7X23dulWPP/647r//ft1xxx0aMGCAgoKCdOLECc2ZM0c33XST1qxZo7Zt2+ar/7777tMnn3yiXr16qUuXLqpataosFovS09N18OBBff311/r222+1efPmfNc992dv0qRJeuutt9ShQwfFxcWpRo0a8vLyUkJCghYtWqTmzZtr8eLFuvnmm23HPv3007r11lv1+eef68SJE3kW9WjcuLG9l4Jds2bNUkpKih566CFJOQuA3H777Zo5c6Zef/31It/CmJaWJn9/f6fKBgQEKCMjQ9nZ2fLxMe+t2pEjR3TPPfdo4cKFOnXqVL42Y2NjNWnSJHXo0KHA43Nfi4Zh6MSJE8rIyJCU8zu8cuXKtj8O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q9VqW2gKgGsQ5ACUmty/+KelpTl9zL59+xQeHi5fX19Xdculxo4dq3vuuUfbt2/P90YpLS1NP/30k8aNG6e6deuqf//+pdRL17A3ana5Fi1auL4zl0hNTdXgwYNVt25dHT58WGPHjtXHH3/s0jYffvhhde3atdByrh5ldoVGjRrptddeK7RccHCwatas6YYeOc8wDNutg5euAGrP7NmzNXz4cKfqDggIcPp3XWpqqnx9fZ0a+XWWYRhOhX/DwWMICrtlNreM1WolyAFuQJADUGpy57kcOXJEsbGxTh3TqVMnvfHGG+rXr1+R23M2OJ45c6bA7bl/qU5JSSm0rbNnzyokJKTAfdWqVVO1atUK3DdgwAD99ttvmj9/fp4glzvamJKSUuCtaI4EBQU53WdJdvvtjILOO/e6NW3aNN9jEUqbYRh68MEHtXv3bv3666/6+eefde+996pt27a69957S1S3vddAhQoV1KBBgzJ3LcwQFBSkgICAUj23wMBA26NNiir3gd/jxo1T69atHZZ95ZVXNG3aNKeDXFRUlObPn+9U2cOHD6t27dqmjbparVaFh4dr9uzZDud+ShdH4qpUqWLblvs6dvRsxFznz5+Xj48PIQ5wA37KAJSa6tWrKzAwUOvXr3eq/OnTp7V3715Vr169WO3lLlJS2PydDRs2ODy+sMU4kpOTdfr06XyLRSxZskQrV64stJ+RkZE6evRonm25deUuuGLP5s2bNXv27Hz9TkpKKnRBhdyFOYr7DCir1aoDBw7kO75y5coKCgrSwYMHC61j0KBBevXVV4vVfnFMnTpVn3/+uT788ENdddVVuueee3TPPfdo5MiR+uOPP0pU9759+wq8lnXq1HHqWjz99NO2Z5h5itxzczSqI+W8TqOiooo0Gu+s2rVr69ChQ8V6uPy0adNUsWJFPffcc+rZs6fDjyeeeEKbNm3Sb7/95lTdderU0ZEjRwpcAOdy69evN/VZbF5eXvLz89Py5csLLZvbv9w/tF36+eHDhws9/uDBg6pduzZBDnADfsoAlBqLxaKHH35YkydP1t9//11o+ddff11+fn5q1KhRsdqrVq2aoqOjNXXqVFmt1gLL/O9//9PkyZML3Fe5cmU1atRI7777rjIzM+228+abb8rX11fXX399nu1ff/21Ro0a5fANpmEYio+Pz3fLWYMGDVSjRg1NnjzZ7vGGYWjMmDGaNWtWnu0tW7aUr6+v3nrrLbvtZmZm6p133tFVV12V5y/xRTFjxgydPHky30OiLRaL2rVrp+nTp9seIFyQXbt26csvv3TpyqOX+uWXX/TYY49p5MiReebvTZkyRfXq1VP//v2LvZjG6tWrtWnTJrVr1y7fvnbt2unzzz93WPeJEyf04YcfFvuPFqWlbdu2On78uL755hu7ZQzD0LvvvisvLy+XzJG78cYbdeLECX311VdFOi4pKUlffPGF7r333kIXyJGkPn36KCwszOkFT3r16qXw8HA98cQTDkcMv/jiC61cuVIjR47Mt+/06dMOf/c40rZt20Jfd+np6XrnnXfUsmXLPHOOK1WqpKuvvtrh704pZxT6s88+U8uWLYvVRwBFw62VAErVU089pe+++05NmjRRv379VK9ePVWvXt3219zs7GydOHFCq1ev1tq1azVhwoRiBw2LxaI333xTt956q6677jp17dpVNWrUUEZGhhISErRhwwZt2LBBgwcP1owZMwo8fvLkyerRo4eaNGmiXr16KSwszDYn5OTJk1q/fr2WLVump59+Ot+CDwMGDNB///tf3XTTTWrXrl2+RQ7S0tK0fv16bdy4URMmTMizLyAgQK+++qqGDh2qv//+W126dFH16tXl7e2trKws7d27V7/++qvWr1+f7/atyMhI/etf/9L//d//ad26dbrhhhtUrVo1eXl5KSsrSwkJCfruu++0fft2ff/993Zv55o3b562b9+eZ5thGDp9+rS2bNmiOXPmKC4uLl+AlaRXX31VLVq0UMOGDXXbbbcpLCxMvr6+MgxDqamp2rt3r77++mvVr19ft956q/1voh0F9e1y/v7+Gjx4sPz9/XX69Gn1799fzZo105tvvpmnXEBAgL755hu1aNFCw4YN09dff52vrhUrVthdtXH79u364osv1Lp16wLnOT7//PP64osvVL9+fQ0cOFA1a9a0BZq0tDQdOnRI3377rXx8fEp8e6e7XXfddRoyZIjuvPNOff3114qNjVXFihVlsViUlZWlM2fOaOXKlfrxxx81ffp0lyzY0rp1aw0YMEADBw7Ut99+q9jYWLVp06bQWwpnzpyp1NRUjRgxwql2ypUrpwceeECvv/663nzzzUIXWwoICNA777yjQYMGqVGjRurZs6ciIyNVoUIF28/hxo0btWLFCvXv3z/f7al//vmnYmNj1b9//yKHVEmaMGGCYmNj1ahRIw0cOFARERG2uca57c+fP1979uzJN3KX+7uze/futt+d1atXtz1GJT09XYcOHdIXX3yh5ORkvfLKK0XuH4BiKJWn1wHAJdLT043XXnvNaNeunREREWFIsn1YLBYjIiLC6NChgzF37lzDarXmOz4xMdGoXr26sXTpUqfa++mnn4yuXbsatWrVMry8vIwKFSoYzZs3N+666y7jp59+KvTB4Rs3bjR69eplREdHG97e3ra+hoWFGW3btjW+/PLLAvtpGIbxySefGFdffbXh7++f5zwlGeXLlzdiY2ONTz/91G7fV69ebdx8881GVFSUYbFYbMdWrVrVaN++vTFv3rwCj7NarcZXX31ltG3b1ggLC7Md5+3tbURHRxu9evUyNm7cWOCxuQ+QtvdRrVo14/rrrzfef/99Iysry27fd+/ebcTFxRkNGjQwfH19bccHBwcbDRs2NMaOHWscOXLE7vEFOXPmjBEcHOywf7kffn5+xo4dOwzDMIz169cb9evXN/bv32+37m+++caoV69evodbO2qjUqVKRvPmzY2XX37ZSEtLs1v30aNHjQceeMBo3LixUb58edvxgYGBRkxMjDFixAhj165dBR77wgsvGB07diz02nz00UdG27ZtC7xm1atXN7Zs2WL32EGDBjl8APzixYuNunXrFrgvKyvLmDZtmtGqVSujWrVqeV5r4eHhxs0332z3dfrnn38a1atXN06dOuXw3HLPYevWrQXuz8zMNN59913juuuuM6pWrWp06dLFYX2GYRijR482br311kLLXSohIcGoXLmy3X4UZOfOncagQYOMJk2aGBUqVLBdmzp16hhdunSx+/vD3sPDL9ehQwdj+vTpBe7bs2ePMWTIEKNevXp5fga9vb2NunXrGrfeequxbds2u3Vv2rTJ6Nmzp1GnTp08v/v8/PyMBg0aGEOGDDH27dvn9LUAUDIWwyjGTeQAcAVbtWqVOnbsqPj4eMXExJR2d0pd7lyvpUuXFnuJ/yuJxWLRhx9+qGHDhpV2V2Ayw8mVHUt6DACYgTlyAP4x4uPj1bBhQ506dcphuezsbEnOPfQZwJWjOIGMEAegtBDkAPxjGIahHTt2FLoa4b59++Tl5aWIiAg39QwAAKBoWOwEwD9GdHS0GjRooPvv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6aWXNHHiRNvKnc7y9/fXfffdJ8MwNHv2bD388MMFljMMQ6NHj1a7du30ww8/FBjgcr3xxhtF6gMA5xDkAFwxVq1apaZNmzoMcY5UrFhR/v7+BS4NX1Rff/21RowYoXPnzunzzz93Oth269ZNv/76q/bt21fsRzj8/vvvuvvuu7VlyxY9/vjjeu655+yWHT9+vLZs2aJNmzYV+Q1fUT344IP6/PPP9fvvv7tkOfvNmzerW7duqlGjhpYsWaLw8HDT23DW3XffrS+++CLPNm9vb61cuVLBwcGl1KuLLBaL3n77bV177bUOQ824ceN06623mtZuSkqKBg4cqPbt2+vxxx83rV5Jqlu3rp555hk99dRTmj17doFlfH199csvv5jyPYiKitLmzZsLLZeZmamTJ0/a3V/Sn8Ht27erUaNG+bb36NFD999/f5Hrc1ZiYqK2bNmiefPmOQxxAFyHIAfgirFv374SrVA4derUIj1vrSBHjhzRo48+qm+++UbNmzfXRx99VKRRhzNnzujs2bPFmmdy/vx5TZw4URMmTFDVqlX19ddfq3///nbLr1y5UpMmTdIHH3xQ6KIpZjhz5oxSU1OVnp5uet1nz55V9+7dVb9+fS1cuNDu7bHnz5/Ps/rn5apWrWp3pceimDhxom1FyMzMTB0+fFhz5sxRly5dtHr1aqcWgnGl+Ph4XXfddapfv76GDBmimjVr2v6AYbVadfz4ca1bt05TpkxRmzZtdMstt+Q5vrjX8ZFHHtGpU6e0cuVK01edfeONN/TMM8/onnvusT0oO7eN9PR0HTx4UJ999pmGDBmi1atX53uNnDx5UikpKQXWbbFYFBUVlecWyaZNm2r69Onas2ePoqOj7fZr3rx5dheLMeNnsF69elq2bJnS0tJkGIYSExP1119/6d///rf69++vOXPmuGSF39y5vyX5nQugZAhyAK4YSUlJ+eZwuIthGProo480ZswYWa1WvffeexoxYkShqwJebvXq1UpPT7c9nNlZa9eu1bBhw7Rz50499NBDeuWVVxzWcfLkSQ0ePFg9e/Z0261+M2fO1Pvvv1/gA6xLauLEiTp37py++uorh3Mc7733XrujNZJ0ww03aN26dSXuT+3atfPdzjpy5Ej16dNHDz/8cL5HELjbv/71L8XExOjnn3+2+xodNmyYmjRporvuukuHDh2yzdWU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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "if hw_cfg.get(\"hardware_options\", {}).get(\"distortion_corrections\") is not None:\n", " # In case the cells below have already been run, we need to reset the distortion_corrections hardware option again.\n", " print(\n", " f\"Predistortion filter removed. Previous value: {hw_cfg['hardware_options'].pop('distortion_corrections', None)}\"\n", " )\n", "# Run the measurement control loop\n", "cryoscope_ds = meas_ctrl.run(f\"Cryoscope Experiment A {cryoscope_kwargs['amplitude']}\")\n", "# Analyze the date from the measurement\n", "if cluster_ip is None:\n", " savgol_filter_params = {\"window_length\": 2, \"polyorder\": 1}\n", "else:\n", " savgol_filter_params = {\"window_length\": 10, \"polyorder\": 1}\n", "cryoscope_result = CryoscopeAnalysis(\n", " dataset=cryoscope_ds,\n", " label=\"Cryoscope\",\n", " settings_overwrite={\"mpl_transparent_background\": False},\n", " frequency_change_to_flux=frequency_change_to_flux,\n", " savgol_filter_params=savgol_filter_params,\n", ").run()\n", "cryoscope_result.display_figs_mpl()" ] }, { "cell_type": "markdown", "id": "780674f8", "metadata": { "lines_to_next_cell": 2 }, "source": [ "### Calculate the predistortion needed to send a square pulse\n", "\n", "In order to find the optimal parameters for the overshoot correction, we define the residual as the difference between exponential_overshoot_correction() applied to the measured $\\Phi/\\Phi_0$, and the ideal pulse shape." ] }, { "cell_type": "code", "execution_count": 21, "id": "fe34399d", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:20.227297Z", "iopub.status.busy": "2024-10-17T13:11:20.227096Z", "iopub.status.idle": "2024-10-17T13:11:20.231516Z", "shell.execute_reply": "2024-10-17T13:11:20.231017Z" } }, "outputs": [], "source": [ "from copy import deepcopy\n", "\n", "\n", "# Define the residual for the fitting function\n", "def residual(params: list, distorted_data: np.ndarray):\n", " # Params are [amp,tau,scale]\n", " distorted_data = deepcopy(distorted_data.values)\n", " # Remove the offset: subtract the value of the first data point from the data array\n", " distorted_data -= distorted_data[0]\n", " # Scale the data by scaling parameter\n", " distorted_data /= 2 * params[2]\n", " # Define the ideal pulse as a step function with height 0.5 starting at t=0\n", " ideal = 0.5 * np.ones(len(distorted_data))\n", " ideal[:5] = 0\n", "\n", " return exponential_overshoot_correction(distorted_data, params[0], params[1]) - ideal" ] }, { "cell_type": "markdown", "id": "afd9b5e0", "metadata": {}, "source": [ "Find a best fit for the predistortion filter that would result in a clean pulse at the qubit using the least squares method." ] }, { "cell_type": "code", "execution_count": 22, "id": "4708a46d", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:20.233527Z", "iopub.status.busy": "2024-10-17T13:11:20.233334Z", "iopub.status.idle": "2024-10-17T13:11:20.240648Z", "shell.execute_reply": "2024-10-17T13:11:20.239937Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/builds/qblox/packages/software/qblox_instruments_docs/qblox_instruments/qblox_instruments/simulations/predistortions.py:80: UserWarning: Qblox simulator plugin WARNING: Output will be clipped.The result of the simulation cannot be trusted.\n", " warnings.warn(\n" ] } ], "source": [ "from scipy.optimize import least_squares\n", "\n", "time = cryoscope_result.dataset_processed.t\n", "# Convert xarray.DataArray to np.array, store the results separately in memory\n", "distorted_data = cryoscope_result.dataset_processed.reconstructed_phi\n", "# Find the overshoot correction parameters that best approximate the ideal pulse shape\n", "res = least_squares(residual, x0=(0.33, 73, 0.1), args=(distorted_data,))" ] }, { "cell_type": "markdown", "id": "ddc0474e", "metadata": {}, "source": [ "Plot the measured pulse shape versus the corrected and predistorted pulse shapes" ] }, { "cell_type": "code", "execution_count": 23, "id": "82daa023", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:20.242535Z", "iopub.status.busy": "2024-10-17T13:11:20.242343Z", "iopub.status.idle": "2024-10-17T13:11:20.390605Z", "shell.execute_reply": "2024-10-17T13:11:20.389958Z" }, "tags": [ "nbsphinx-thumbnail" ] }, "outputs": [ { "data": { "image/png": "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VisWLlzoCmwAEB4ejmeffRZ33303CgoK3HqA4uPjMWPGDKxdu9YttH344Yf461//iuuuu87t/BKJBB07dsRrr72Gv/71r26hbc+ePZg/f36tW4KCgoLw5JNPYtWqVdi+fTuGDx8OAMjOzka3bt3qXCJLrVbjpZdewpEjR7xrEKd3330XW7duRVRUVK19S5cuxeLFi5Gamuq2XSKR4LrrrsMLL7yAZcuWuYW2Dz/8EM8//zxuvPFGn9QvEAVkaCMiIiKi1iORSHw2xDCQBQUF1RqCCABJSUlISEioc8heQkICfvrpJ7dtmZmZmD59er3XSUlJQVZWltu21157rcEp43v37o3MzExXaEtOTsaxY8dw4MABXHfddbVGnLVr1w7Dhg2r93zNcfvtt9cZ2ICqz5qcnFzvsSkpKfjwww9rHTNtWmD+ksBXGNqIiIiIiDygUqnqnNREpVLVu7CySqVCZWWl2zaTyYRRo0bVG8IEQUBSUpLbNqvVimeffRZr165FaWlprWPKysrw8ssvu963b98eixYtwgMPPIBLly65DTFUKpW45ZZb8M9//rPesNUcXbt2rXefyWRC9+7d611LzW63Y8iQIbWOUavVXtcrkDG0ERERERG1ss2bN6Nv375NLj9//nxUVFRg3759bveMVasZ2Krdc889uOeee2ptt1qtWLx4Mf7yl7/g888/b17F61BfYK128uRJhIWFeX2da0nArdNGRERERNSWqNVqGAyGevc7HA7s2rXLbdsPP/yAZ555ps7AVn1MUykUCjz22GO1riGVSl0T/tXFarU2+RrVGvusJpMJ+/fvd9um0WhQUVFR7zF2u73Z9Qg0DG1ERERERK0oOTm5wUlADhw4gPnz57tts9vt9Q4xFAQB27Ztc9v29ddf45VXXqn3GhKJpFbQi46OxtmzZ+ssb7VasWnTpnrPV5/GPuu6deuwdOnSWsecOHGi3mOuhckCGdqIiIiIiFrRH/7wB/z973/Hjh07agWnc+fO4bnnnsOUKVPctg8aNAhvvfWWW2+XIAg4efIkZsyYgaKiIrfy3bp1w+eff46MjIxavWeCIODjjz/GTTfd5LZ9xowZePTRR5GTk+PaZrfbsX//fkyaNMmj9YtnzJiBZ555BocOHapVjxMnTmDhwoWYPHmy2/aHHnoICxcuxN69e92OKS0txeeff96kGeUDHe9pIyIiIiLyQExMTJ3bg4KCEB4eXuc+jUZTa93fG264AR988AGeffZZZGZmuoKJTCZDZGQkHn74YfzhD39wO+bll1/GrFmzkJqaCovFAqlUisjISHTp0gUPPvggevbsieDgYFf5nj174oknnsCIESNgMpncZo+USqW4/vrra/VwzZw5E1KpFGPGjEFBQQEkEgnatWuH7t274+mnn8amTZsQEhLidoxer693yCYAjBs3DuXl5fj973+PvLw813a5XI7Y2Fg8++yzGDlypNsxffv2xTvvvIOnn34amZmZsNvt0Gg0iI+Px4033ohly5bVuSB3WyIRGhqoSj5lMBig1+tRWlra4A9zS7BarVi3bh3GjBnT4HSx1HxsW/GwbcXDthUH21U8bFvxWK1WbNy4EcnJyUhJSWl0UglqOofDAYPBAJ1OV+/QRvKMv7St2WxGVlYWkpOTG/2z05xswJ8WIiIiIiIiP8bQRkRERERE5McY2oiIiIiIiPwYQxsREREREZEfY2gjIiIiIiLyYwxtREREREREfoyhjYiIiIiIyI8xtBEREREREfkxhjYiIiIiIiI/xtBGRERERETkxxjaiIiIiIiI/BhDGxERERERkR9jaCMiIiIiIvJjDG1ERERERER+jKGNiIiIiIgCyqlTpzB+/PjWrkaLYWgjIiIiIqKAYjKZUFJS0trVaDEMbURERERE5JUePXq0dhXaNIY2IiIiIiLySm5ubmtXoU1jaCMiIiIiIvJjDG1ERERE1CyCIECoKA/MhyD4tC2Ki4uRnp6Ozp07IyoqClFRUWjXrh2io6Mxffp0FBUVucra7XZ8+OGH6NOnD2JiYlzlExIScPvtt2Pfvn21zv/EE09gx44dyMrKwsMPP4zExER07doVDoejSfsBYPny5ejfvz/i4uJc14yNjcUtt9yCFStW1Pm5Nm7ciFtvvdV1TIcOHRAeHo4bbrgBX3/9tavchAkTEBUVhdLSUrdznzp1yu1zv/vuu+jduzdiY2Nd5eLj4zF8+HBs27atzjpU17vmMdWP4cOHN+9/VICTt3YFiIiIiCjAmE0ouyW4tWvhkeDdZYBa67PzPfjgg+jSpQv279+PkJAQ1/bLly/jvffew8yZM/Hll18CAJYuXYr169dj1apVSEpKgkQiAVAVajZv3oyJEyfi559/RnR0tOs8BoMBv/76K5577jnMmjULr732GnQ6XZP3f/fdd3j33XexfPlypKSkuK4pCAIOHz6MqVOnIjw8HGlpaa5jDhw4gMcffxzLli1Dv379IJVW9fNYLBb89ttvmDRpEnr16oWuXbvi22+/BQCEhobi4sWLdbbRe++9h61bt+L77793+2wOhwO7du3C/fffj++//x6dO3d2q/drr72Gzz//HN26dXPVu9rBgwfx1FNPNeH/UNvAnjYiIiIiIg/k5+fj4MGDWLhwoVtgA4D27dvjmWeeQVxcnGvb+++/j8WLFyMxMdEthMhkMowaNQr333+/K+DV9O677+Lrr7/G3Xff7RbImrJ/6dKlWLx4MVJTU92uKZFIcN111+GFF17AsmXL3I7597//jeeffx4DBgxwBTYAUCqV6Nu3L1566aVmzdy4dOlSvPfee26BDQCkUiluvfVWPPLII/jmm29qHfP666+je/futQLbtYg9bURERETUPEGaqh6rQBSk8dmpsrKy0LlzZ7dg43apoCAsWrTI9T4vLw+JiYn1nq979+7YtWtXre233347oqKi6j2uof2ZmZlITk6u99iUlBR8+OGHbtuysrLwu9/9rt5jpk6dWu++uuTn56Ndu3YN1mHjxo1u2zIzM9G1a9dmXactY2gjIiIiomaRSCQ+HWIYqEwmE9RqdZPLOxyOBnuNNBoNysvLa21vLLw0tN9kMqF79+71Bku73Y4hQ4bUOqY5n6sxly9fbjB02mw2TJ8+XdQ6BDqGNiIiIiIiPxYUFOTV/pMnTyIsLMyXVWoWnU5X7/1u1DS8p42IiIiIyAMajQYVFRVNLi+VShucvdJkMkGr9W0PplqthsFgaPCa+/fvd9vW3M8FVPW+1vfZHA4H7HZ7vccWFhbi2LFjzapDQ+drixjaiIiIiIg8kJSUhFOnTrlNr1+T2WzGnDlzXO+jo6ORk5NT7/mOHz+OlJQUn9YxOTkZR44cqXf/unXrsHTp0lrHnDx5st5jli9fjr1797pt69ChAy5cuFBn+fj4eBw/frze83388ce1lh5ITk7GiRMn6j1mz5499e5rixjaiIiIiIg80L59e1x33XV47rnnUFbmPjFLfn4+Fi1ahLNnz7q2/fGPf8SsWbNqBTe73Y5Nmzbh008/xb333uvTOs6YMQPPPPMMDh06VKsn7MSJE1i4cCEmT57stv3BBx/EggULsHfvXrdjrFYrDh06hLlz59aaLfPBBx/E448/jkuXLtVZh8ceewxnzpxxO58gCNi3bx/ef/99jBs3zu2YRx55BH/5y19w/Phx1zGCICA/Px9LlizBJ5984lF7BCre00ZERERE5KGPPvoI8+fPR58+fVzBzW63QyaTYeTIkViyZImr7OOPPw6LxYKxY8eisLDQFUYUCgW6d++Ob775BjExMW7n1+v1dU7z39T948aNQ3l5OX7/+98jLy/PtV0ulyM2NhbPPvssRo4c6XbMDTfcgLfffhvp6enIzs6G3W6HIAiwWCxISkrCwoUL0a1bN7dj0tPTIZPJMHToUBgMBnz33Xfo06cPAGDmzJmQSqUYN24cCgoK3OrQqVMnvPfee+jZs6fb+e68806UlZXhvvvuQ15eHhwOB4KDg5GUlIS0tDR8+OGHmDdvXr2fu62RCL5eFp7qZTAYoNfrUVpa2uAfrpZgtVqxbt06jBkzBgqFolXr0tawbcXDthUP21YcbFfxsG3FY7VasXHjRiQnJyMlJaXRSS6o6RwOBwwGA3Q6Xb2zOZJn/KVtzWYzsrKykJyc3OifneZkA/60EBERERER+TGGNiIiIiIiIj/G0EZEREREROTHGNqIiIiIiIj8GEMbERERERGRH2NoIyIiIiIi8mMMbURERERERH6MoY2IiIiIiMiPMbQRERERERH5MYY2IiIiIiIiP8bQRkRERERE5McY2oiIiIiIiPwYQxsREREREZEfY2gjIiIiIiLyYwxtREREREREfoyhjYiIiIioDSsvL0e/fv1auxoB64EHHsC+fftatQ4MbUREREREbZjVakVBQYHbtt/97neIj49vpRoFltLSUpSXl7dqHRjaiIiIiIiuMYmJiejWrZtX57h48SKGDRvmoxo1zeLFi/Hvf/+7Ra/pD+StXQEiIiIiImpZCxYs8PocZrMZRUVFPqhN0xmNRshksha9pj9gTxsREREREZEfY2gjIiIiomYRBAEmuz0gH4Ig+KwdevTogdzcXMycORMDBw5EYmIioqKikJCQgNGjR+OXX36pdcwzzzyDHTt2ICsrCw8//DASExPRtWtXOBwOV5nly5ejf//+iIuLQ1RUFKKiohAbG4tbbrkFK1asqLMumzZtwuDBg92OqX507ty5VvnNmzfjiSeecNt26tQpDBkyBBEREW7HR0ZGonfv3vjhhx9cZfv374/+/fvj6NGjrnJJSUkoLS11lTGbzXj55ZfRrVs3REdHu5WbPHkyTp06Vated999N86ePYtDhw7h3nvvRXx8PEaMGIHdu3cjKioKr7/+Ov7617+6zvXoo4/W+gyTJ09GcnKyq0x0dDS6dOmC5557DkajsdY18/Ly8Ic//AGpqam12i4qKgrr16+vs81bEodHEhEREVGzVDgc6HnwYGtXwyNH+/SBxkfD6zIzMzFp0iQ8+eSTePXVVxEcHAwAsNvt2LJlCyZOnIg9e/YgOjradYzRaMTBgwcxd+5czJo1C6+99hp0Op1r/3fffYd3330Xy5cvR0pKCiQSCYCqoHz48GFMnToV4eHhSEtLcx1z8OBBPProo1i2bBn69+8PqdS9X6akpAR9+vRx21ZWVgaDweC27c9//jOmTZuG+++/HyqVyrVdEARs3boV06dPR3Z2NiQSCfbt24fs7GyMHz8eB+v5WZg7dy4uXbqE7du3o127dq7tVqsV33zzDUaPHo0jR45Ao9G49hUXF2PTpk348ssv8fzzz+PDDz+EVqsFUHUP3fz58xEaGoqnnnqq1vXKy8sxfvx4vP7661i+fLnbMMri4mLMnTsXTz75JD766CPXdofDgfHjx2Pq1Kl45513EBQUVOu848ePr/PztSSGNiIiIiIiD5jNZixatAi33nqr23aZTIaRI0fivvvuw5dffomnn37abf97772HrVu3IioqqtY5ly5disWLFyM1NdVtu0QiwXXXXYcXXngBy5YtcwttH374IZ5//nnceOONXn2ejIwM3HnnnW6BrfraQ4cOxWuvvdbkcwmCgM8++wxZWVmu0FVNoVDg3nvvxdq1a7F+/XpMnDjRbf9HH32ETZs21TquMZs3b8awYcNwxx131NoXFhaGf/7zn4iNjYXD4XAF2wMHDkCtVtcZAv0JQxsRERERNYtaKsXRq3puAoVa6ru7g7RaLQYNGlTv/u7du2PXrl21to8aNarOwAZU9d4lJyfXe86UlBR8+OGHtY6ZNm1aE2tdvy5duuC///0vpk+f7tb7V+3//u//mnyu/Px8hIaGNhi8unfvjszMzDqv09zABgDZ2dkNtp1CoUC7du1w4cIFxMbGAqhqu65duzb7Wi2NoY2IiIiImkUikfhsiGEgk8vlruGLddFoNHWu79WlS5d6jzGZTOjevXut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ROQDDG3ksaz2MVg98HYAVTNATm3XDneEhUErk7VyzYiIiIiI2g6GNvKY3bm8Q+rlXKwafVcr14aIiIiIqG3ijUbkOWdokwmOVq4IEREREVHbxdBGHmvCMm1EREREROQlhjbyWPU6bZJWrgcRERERUVvG0EYeExjXiIiIiIhEx9BGHhM4PpKIiIiISHQMbeSx6uGRvLmNiIiIiEg8DG3kOY6OJCIiIiISHUMbec7ZwyZhVxsRERERkWgY2shjjGpEREREROJjaCMf4DhJIiIiIiKxMLSRF6rXaWOfGxERERGRWBjayAvsYSMiIiIiEhtDGxERERERkR9jaCOPcVAkEREREZH4GNqIiIiIiIj8GEMbeay6p413thERERERiYehjTzGsEZEREREJD6GNiIiIiIiIj/G0EYeE6rXaRM4JQkRERERkVgY2oiIiIiIiPwYQxsREREREZEfY2gjj3FQJBERERGR+BjaiIiIiIiI/BhDG3lBUuO/REREREQkBoY28gIHSBIRERERiY2hjYiIiIiIyI8xtJHXODySiIiIiEg8DG3kMQ6OJCIiIiISH0MbERERERGRH2NoI49xWCQRERERkfgY2shzHB9JRERERCQ6hjbymODsamOPGxERERGReBjaiIiIiIiI/BhDG/kAx0kSEREREYmFoY28UBXWODySiIiIiEg8DG1ERERERER+jKGNPCZU97FxdCQRERERkWgY2shjEqY1IiIiIiLRMbSRx1yRTcK72oiIiIiIxMLQRl6oCmsSgT1uRERERERiYWgjLzCsERERERGJjaGNPFY9EQkHRxIRERERiYehjTzGYZFEREREROJjaCMiIiIiIvJjDG3kMQfHRRIRERERiY6hjTzGzEZEREREJD6GNvIawxsRERERkXgY2oiIiIiIiPwYQxsREREREZEfY2gjj1VP+M/hkURERERE4mFoIyIiIiIi8mMMbeQ5rq1NRERERCS6gAltJSUlmD17Nnr16oXo6GhERUUhKioK3bt3x6OPPopLly41evzMmTORnJzsOjYqKgpxcXEYNmwYdu/eXeuY/fv3Y9SoUYiLi3M7pmPHjpg9ezaMRqNYHzcwSKoHRjK9ERERERGJJSBCm91ux/Dhw6HVarF161bk5eXh4sWLuHjxIn766Sd07doVAwcOhMlkqvcc6enpUCgUOHr0qOvYixcv4ty5c/jb3/6GadOmIS8vz1XeYDBgwoQJeOKJJ5CTk+N2zK+//ory8nLMnj27JT6+/xIY1oiIiIiIxBYQoW3FihVISkrCvHnzEBERAYnkytQXer0eTz75JMaMGYP333+/3nNs2LABCxcuhFarddsulUoxaNAg3HPPPVi1apVr+6FDh9CrVy+MHTvW7XoAEBISgsWLF+Pbb7/10ScMUBK3JyIiIiIiEkFAhLYjR45g6NChDZYZMWIEjhw5Uu/+2bNnQ61W17s/Pj4eOTk5rvedOnXCc889V2/5oKAgyGQyWCyWBuvVlrGfjYiIiIhIfAER2s6fP4/o6OgGy8TExODcuXP17k9PT2/w+KNHj6Jjx46u91FRUbjlllvqLV9RUYHo6GgolcoGz9uWsYeNiIiIiEh88tauQFPY7XbIZLIGy8jlcthsNo/Ov3r1amzYsAELFixoUvni4mI899xzmDZtWoPlKisrUVlZ6XpvMBgAAFarFVar1aO6+kr19b2ph6O6q03w7jxtjS/alurGthUP21YcbFfxsG3Fw7YVD9tWPIHYts2pa0CENrEUFxcjPT0dO3bswMqVKxEWFlZnucrKSnTv3h3l5eWwWq0oKirCyJEj8c9//rPB87/yyit48cUXa23fuHEjNBqNLz6C1zZt2uTxsdVDQysrK7Fu3TpfVanN8KZtqWFsW/GwbcXBdhUP21Y8bFvxsG3FE0ht29AkilcLyNB28uRJjB49Ghs2bEDnzp2bfbwgCPjqq68we/ZsTJw4EQcOHIBer6+3vEqlwpkzZ1zHFhcX44MPPsD//d//YeXKlbUmKqk2Z84czJo1y/XeYDAgPj4eI0eOhE6na3a9fclqtWLTpk247bbboFAoPDrHtjNV9xAGqVQYM3qML6sX0HzRtlQ3tq142LbiYLuKh20rHrateNi24gnEtq0ehdcUARnaunTpgszMTI+OzcnJwfTp0yEIAtavX48ePXo063iJRILw8HA888wzGDp0KPbv349+/frVWValUkGlUtXarlAo/OaHyau6SK48+8vn8Sf+9P+5rWHbiodtKw62q3jYtuJh24qHbSueQGrb5tQzICYiacr9ajabDXJ5wxl07969GDx4MKZMmYItW7Y0O7Bd7brrrsPhw4e9OkdA4/SRRERERESiC4jQFhcXh4sXLzZYJi8vDwkJCfXuLykpwYQJE/D5559jxowZ9Q5prDZ16lScPHmywTJSqRRSaUA0oSgErtNGRERERCS6gEgcvXr1wpYtWxoss2XLFvTq1ave/YsXL8bUqVMxaNCgJl1TrVY32ov222+/ITU1tUnnIyIiIiIi8kRAhLbx48fj/PnzmDdvHgoLCyEIV8blGQwGvP3221i7di1mzJhR7zn279+PsWPHNvma9957L1566SUcP37c7XpA1ayJS5cuRUFBQYNrubV1HB1JRERERCS+gJiIRCaTYfPmzViwYAHS0tLcgltoaCjS0tKwc+dOaLVaAMDWrVvx0EMP4cCBA65ZGouKijBp0qQG13sbPnw4li1bBgAYMWIEnn/+edx3333Izc11C24ajQa33nor1qxZ0+j6cdcCDo8kIiIiIhJPQIQ2ANDr9Vi0aBEWLVrUaNkhQ4bg9OnTbtv27NnT7GtOmTIFU6ZMafZxREREREREvhIQwyPJP7l62DhOkoiIiIhINAxt5D2OjyQiIiIiEg1DG3lOYBcbEREREZHYGNrIY4JzrTsJsxsRERERkWgY2sh7HB5JRERERCQahjbyWHUHG3vaiIiIiIjEw9BG3mNPGxERERGRaBjaiIiIiIiI/BhDG3mPwyOJiIiIiETD0EZe4+hIIiIiIiLxMLQRERERERH5MYY2IiIiIiIiP8bQRkRERERE5McY2shjrnXaWrUWRERERERtG0MbeY+pjYiIiIhINAxt5DkJ0xoRERERkdgY2shzQtUASQnXaSMiIiIiEg1DG3mPHW5ERERERKJhaCPPVYc19rQREREREYmGoY08JjCsERERERGJjqGNvMfhkUREREREomFoI69xIhIiIiIiIvEwtJH32NNGRERERCQahjbyHMMaEREREZHoGNrIc85hkRweSUREREQkHoY28h573IiIiIiIRMPQRh4TnGGNmY2IiIiISDwMbeQxhjUiIiIiIvExtJHHeCsbEREREZH4GNqIiIiIiIj8GEMbERERERGRH2NoIy9IavyXiIiIiIjEwNBGXuBdbUREREREYmNoI48J7GMjIiIiIhIdQxt5jdGNiIiIiEg8DG3kMQmHRxIRERERiY6hjTzG4ZFEREREROJjaCMvVPW0MboREREREYmHoY28wLhGRERERCQ2hjbyGqMbEREREZF4GNqIiIiIiIj8GEMbeUxwdbGxr42IiIiISCwM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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ideal = res.x[2] * np.ones(len(distorted_data))\n", "ideal[:5] = 0\n", "\n", "fig, ax = plt.subplots()\n", "ax.plot(time, distorted_data, label=\"measured\")\n", "ax.plot(\n", " time, exponential_overshoot_correction(distorted_data, res.x[0], res.x[1]), label=\"corrected\"\n", ")\n", "ax.plot(time, exponential_overshoot_correction(ideal, res.x[0], res.x[1]), label=\"predistorted\")\n", "if cluster_ip is None:\n", " ax.set_ylim(0.9 * res.x[2], 1.1 * res.x[2])\n", "ax.set_xlabel(\"Time (ns)\")\n", "ax.set_ylabel(r\"Reconstructed $\\Phi$\")\n", "ax.legend()\n", "ax.grid()" ] }, { "cell_type": "markdown", "id": "4a209bd1", "metadata": {}, "source": [ "### Repeat the measurement of the phase vs the duration of the detuning flux pulse\n", "\n", "This time with the predistortion filter applied." ] }, { "cell_type": "code", "execution_count": 24, "id": "5105e9c8", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:11:20.392717Z", "iopub.status.busy": "2024-10-17T13:11:20.392527Z", "iopub.status.idle": "2024-10-17T13:11:21.991238Z", "shell.execute_reply": "2024-10-17T13:11:21.990542Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting batched measurement...\n", "Iterative settable(s) [outer loop(s)]:\n", "\t --- (None) --- \n", "Batched settable(s):\n", "\t x_or_y, time_axis \n", "Batch size limit: 410\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.9/site-packages/quantify_scheduler/backends/types/qblox.py:1235: ValidationWarning: Setting `auto_sideband_cal=on_interm_freq_change` will overwrite settings `amp_ratio=1.0` and `phase_error=0.0`. To suppress this warning, do not set either `amp_ratio` or `phase_error` for this port-clock.\n", " warnings.warn(\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f6dfffb5a997450ba3c39de8cb2115ed", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Completed: 0%| [ elapsed time: 00:00 | time left: ? ] it" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3IAAAJqCAYAAABuJXKjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACcu0lEQVR4nOzdeVxU5eLH8e8AioqAuywCCi6pYZpmlrmbmplbWrlbuWTWLZfMVqtbaov1q7ypdVtuqdninlm5oZnaopZaqbjvu4ArCvP8/jAmCWYY4MzA6Of9evG613OebQ7DxJfnPM+xGWOMAAAAAAA+w6+gBwAAAAAAyB2CHAAAAAD4GIIcAAAAAPgYghwAAAAA+BiCHAAAAAD4GIIcAAAAAPgYghwAAAAA+BiCHAAAAAD4GIIcAAAAAPgYghwAAAAA+BiCHIACl5qaqvHjx6tZs2aqVKmSbDab48vf318xMTFq1aqVFixYIGNMQQ8XhUhycrJCQ0MzvWecfRUrVkyJiYkFPWSvadGihYKDg/Xrr78W9FB82unTpxUXF6dnnnnGkva2bdumPn36qG7dugoODpbNZlNAQICqVq2qtm3b6ssvv8zz59zmzZt13XXXafLkyVnOjRkzxq2fE5vNpvLly+vixYtZ2li8eLFatmyZ7ed0XFycevbsqR07duRp7AByL6CgBwDg6nby5EnddNNN2r59u7p27aomTZqoQoUK8vO79HemtLQ0HTlyRMuXL1eHDh308ssva9SoUQU8ahQWJ0+eVEpKioYOHaprrrnGZdlixYopKirKSyMreMuXL5cxRhs2bFDdunULejhe88svv+jkyZO69dZbLWnv008/1Y4dO/TWW29p9OjRCgoKynNbM2fOVK9evRQWFqb27dvr7rvvVnBwsC5evKj9+/dr7dq16t69u+666y7NmDFDNpvN7ba3bdumVq1a6cCBA9q3b1+W87t371aVKlU0fPjwHNsqV66cihQpkunYtGnT1Lt3b9WvX199+/ZVWFhYps/p/fv3a/r06apXr57++OMPRUZGuj12AHlkAKAAjRw50oSGhpo//vjDZTm73W4ee+wxU7x4cXP8+HEvjQ6F3c6dO40ks2jRooIeSqEzaNAgU79+fbNt27aCHopX9e/f39xyyy2WtVe/fn0TGBhoJJn//ve/eW7nzJkzJjIy0nTt2tWcPXvWablp06YZSWb+/Plut71z504THR1tatasacqWLWueeuqpLGX69etnGjdunKexp6enm6ioKNO2bVuTlpbmtNzJkydNeHi4GTBgQJ76AZA73FoJoMAYY/TOO+9o2LBhqlmzpsuyNptNjz/+uM6dO6c///zTSyMEfNeUKVP0yy+/KC4urqCH4lXGGMtuwV67dq3Wrl2rJ554QrGxsZoyZUqe25o/f74OHDigCRMmqHjx4k7L9ezZU82bN9fEiRPdavfEiRNq2bKlgoKCtGzZMpUsWTLPY3Tm8OHD2rt3r4YMGSJ/f3+n5UqVKqWePXtq5cqVlo8BQFYEOQAF5vDhwzp79qxuuukmt8qXLVtWVapU0eHDhz08MgCQ3n33XQUEBGjQoEF64IEH9PPPP+d5zeHOnTsVHh6uypUr51j25ptv1s6dO91q99SpU2rQoIGWLVumihUr5mlsOdm9e7ckKTo6OseyDRo00P79+1nPDHgBQQ5AgdmzZ48kKTw83O06CQkJ6tChQ6ZjSUlJCgsL09q1a2WM0WeffaZbb71V4eHhioiIkN1ulyT9+eefqlixok6cOOGyjz/++MNluV9//VWdO3dW1apVVaRIEceC/8jISDVr1szlZgU///yzWrRooVKlSmXZYCAkJETNmzfXjz/+6HRsy5cvV9u2bVW5cmX5+/s76laoUEEtWrTQvHnzsq1njNHMmTPVrFkzRUZGOuoVKVJEVatWVadOnbR+/fps6yYlJalixYratGmTVq9erXvuuUdRUVEKDAyUzWZTxYoVdfPNN2vKlClKT093OvZdu3apd+/eqlmzpqOuzWZTWFiYmjRpok8++cRrv/wZY9SuXTun10u6NBvTuHFjJScnZzoeFxenb775Rn/++afuu+8+xcbGqnjx4rLZbCpbtqxuuOEGjR07VqmpqU7bPnr0qIYMGaI6deqoRIkSjmtRrlw53XTTTXrjjTeUlpaWbd3nn39e3bt3l3TpZ2jkyJG65pprFBQUpP/85z+Och9++KGaNm2apX7G93Pjxo16/fXXVaNGDcf7uEKFCurTp4+OHDkiSZo6darq1avnGGO5cuV0yy23aPHixU5fm91u1/vvv6/GjRsrLCws02YztWvXVv/+/bNdwyVl/tlbtWqV7rnnHlWqVElFihRRkSJFVK1aNXXu3DnbMNWqVSvZbDb973//0w8//JDpZysv6+VOnTql6dOnq2vXrgoPD9e9996rwMDAPM/K7d692+3PusjISO3atcutn4eYmBh9/vnnuQ5xqampjvV0hw8fdtnX+fPnJcmt2b4777xTv/32W67W9wHIGzY7AVBgzp49K0kubzP6p+z+IpyUlKTDhw9r3759mjBhgr788ku1b99evXv3VoMGDRwL8g8fPqwjR47oxIkTKlOmjNM+jhw54rTcokWL1K5dO1WtWlWdO3dWZGSkihQpIrvdriNHjmj16tXq3r27nnzySb300kuZ6p48eVJt27ZVlSpVNGrUKIWEhGQ6f/DgQc2dO1ft27fXli1bVK5cuUznP/zwQ91333268cYb1aNHD4WFhcnf319paWnasWOHfv75Z3Xu3Fnz5s3LEnbHjBmjf//732rRooXuvfdex4YyGZssfPXVV2rQoIEWLFigdu3aZbm+R44c0SuvvKKpU6fqxhtv1F133aWwsDAVK1ZMx48f12+//aYHHnhAK1as0LRp07Jc0z///FP169dXqVKl1L17d0VFRalYsWIyxujYsWNav369+vbtq9WrV+udd95x+r2xSkZw7tOnj9auXauqVatmOn/s2DF17dpV5cuXz7K5xY4dO/S///1PM2fOVI0aNXTHHXcoPDxcQUFBSk5O1p9//qlnn31WCxcu1IoVK7L8Qnvs2DHVqlVLFy9eVM+ePdW7d2+VKFFCxhglJSXpzz//1MiRI7Vo0SItWLAgS/2dO3dq586dWrlypTp16qQKFSrolltuUVxcnG6//XZHud27d2e7g2DG9/Ohhx7Sjh071K1bN0VHR8vPz0+JiYn64IMPtHHjRj366KMaOHCg7r77bnXv3l3BwcE6evSoZs2apVtvvVUrVqxQkyZNsrR///3366OPPtIdd9yh1q1bq1y5crLZbEpNTdXevXv1xRdfaObMmVq/fn2W657xszd+/Hi9/vrrat68uXr27KmKFSvKz89PBw4c0IIFC1S/fn0tXLhQbdq0cdR98skn1aVLF33yySc6evRopk09ateu7eyt4NT06dN1+vRpPfjgg5IubQBy1113adq0aXr11VdzfQvjuXPnVKxYMbfKlihRQhcuXFB6eroCAqz7Ve3gwYO69957NX/+fB0/fjxLn/Hx8Ro/fryaN2+ebf2M96IxRkePHtWFCxckXfoML1OmjOOPQ1WqVLFszABcKIiFeQBgjDHLli0zkkxiYmK+2snY8KJVq1amWbNmZseOHfnqz1k5u91urr32WtOsWTNz4cIFp/WfeeYZU7RoUbNnz55Mx6dOnWr8/PzMkSNHnNY9fPiwsdlsZtq0aZmOnzlzxlSoUMHce++9xm63Z1vXbrebFi1amA4dOmQ6vm/fPhMYGGiefPJJp3UvXLhgWrZsaWrVqpWlTMb1DQ4ONgkJCU7H/tFHHxlJ5scff8xyrmPHjqZKlSomOTnZaf1JkyYZPz8/s3HjRqdl/ik/m50kJSWZuLg4U7duXXPu3DnH8bS0NNO6dWtTrlw5s3v37iz1JJkiRYqYGTNmOL2eGe+hzz//PMu5f/3rXyYkJMTs37/f6dgWLlxoJJmvv/46y7l+/fqZ6tWrm8qVK5v//ve/TjefGDNmjImMjMxyPOOaVa9e3Zw6dSrL+W+//dZIMv7+/mbZsmVZzp89e9ZUrlzZdOrUKcu5tWvXGklm4sSJTl9bSkqKiYuLM3fddVeWcxnXLSIiwun74OLFi6Z169amdu3a2V7//GzqkcFut5t69epl+XlYvXq1kWTefffdXLeZm3F9+OGHRpK5ePFirvuJiYnJdrOTAQMGGEmmYsWKZvTo0WbKlClm9uzZZv78+WbWrFnm7bffNs2bN892o5WM78vy5ctNt27dTPny5Y2kTF/BwcHm1ltvNevWrcv1mAHkDUEOQIGxOsiVL1/eHDp0KN/9OSt3/PhxI8nMmjXLZf3k5GQjyXzxxReZjo8bN86UK1cuh1djzOuvv57ll9h169YZSea3335zWXft2rXmk08+yXRs5syZRpI5ceKEy7pz5841kszRo0czHc+4vs8++6zL+unp6aZcuXLm1VdfzXTcbrebkJAQ8/LLL7usf+HCBRMaGmr+7//+z2W57MY2ffp0s3fv3ixfOb3m9evXm8DAQDNw4EDHsdGjRxt/f3+zdOnSbOtIMn379s1xbNdff70ZOnRoluN16tQxQ4YMcVnXbreb2rVrm0cffTTLuX79+hlJZsyYMS7byCnIObvOdrvdVKxY0TRo0MBp26NGjTKxsbFZjr/++usmJCTE5R86jDHm1VdfNaVKlcpyPONn78MPP3RZf/78+dm+V42xJsj9/PPP2QZSu91u6tat6/LaOJPduBITE01QUFCm958xngly27dvN5MnTzZnzpxxWtdut5sOHTqYWrVqZTqe8X2Jjo42nTp1MpMmTXKEwPnz55vPP//cTJgwwVx77bUmICDA/P7777keN4Dc49ZKAFeMLl26eGyxv/T3gv+cNisICQlRmTJlsmxWUKZMGZ0+fVppaWkub5caNmxYlmMZbeW02cD111+v66+/Psu4Q0JCVLp0aZd1M26H2rlzZ5bbOqVLGzC44ufnp+jo6CyvOykpSSkpKYqNjXVZv0iRIoqOjtauXbtclstOz549sz3u7++vlJQUlShRItvzdevW1cSJEzVw4EA1adJEJUuW1Pjx4zVhwgS1aNHCaX85XQvp0vskuw0rdu3apT59+risa7PZFBsb6/JaDB48OMcxuOLs9reM9Z6ubo+rVKmSDhw4kOX4rl27FBUVleUZZP8UGxurpKQkJSUlqVSpUlnO57QBUkxMjCTn79X8mjJlioKCgrJ8n2w2mx588EENGjRI69aty/Kzllupqak6e/askpKS8tWOO2JjY3N8z9hsNg0cOFCdOnXK9nvTtm1bvfvuu07rP/zww4qPj9fTTz+tWbNmWTFsAC4Q5ABcMfKyDiY3Mja9CA4OzrFscHBwlk0ybr75ZqWmpurJJ5/Ufffdl2WNTVBQkNOwlZKSIsm9zQayG7e7Y84onx1X245f3sY/62f8++LFi043uchQokQJHT16NMd+/unf//53tg+9LlWqlNMQl+H+++/X999/rwceeED+/v665557sg3Tl3P3WmS3w2pKSorsdnuO1yIwMFAHDx7M9lzp0qUVFhaW4xhccXVdihcvnuP5jA0wLpecnKzixYvn+NoyNnI5duxYtkEup+ub03s1P1JSUvTpp5+qT58+WdaxSpf+aDBy5EhNmTIlX48jkC59Zh07dsytn09viYqKknQpJNerVy/TuXvuucdl3SJFiuiee+7Rxx9/7LHxAfgbQQ7AFSO7X7oKk2uvvVbjx4/X008/rVdffTXbMmXLltVjjz2mUaNGXXG7vjmbNfuna6+9NtdtN2rUSK1bt851PenSLMSIESP08ccfq0iRInrrrbc8fu0ff/xxPf744zmWa9WqVbbHQ0JCCu3745dffnGEgZy4u/mHN02bNk1nzpzRHXfc4TSQduzYUdOnT9drr72W7xDmauOlguAqJLuz62ZkZKR2794tu93u2GgKgGcQ5AAUmIy/+J87d87t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I8gBuGoEBARozpw5GjFihN566y0dO3YsS5nw8HC1a9dOr732WgGMsHAqVaqUypcv73Nb4XtKbGysIiIiCnoYAICrHJudAAAAAICPYY0cAAAAAPgYghwAAAAA+BiCHAAAAAD4GIIcAJ/13XffKTY2Vna7vaCHAgAA4FUEOQAF4siRI6pYsaJiY2N18eLFPLVx4MAB7dy505Igd+bMGb300kuKj49XcHCwbDab46tSpUpq1aqVlixZ4rT++fPnNXbsWDVt2lSRkZGOuhUrVlTjxo01evRopaSkZFvXbrfr008/1U033aTy5ctn6rtMmTK68cYb9c477zgeVO4uu92uLl26qFevXi7Lbd68Wdddd50mT56c7fn09HRNmjRJLVu2VExMjPz8/GSz2VS2bFk1bNhQDz74oA4fPuyyD2OMnn32WcXFxWX6fn388ceZXq+zr4CAAJfXPzcOHTqkZs2a6Yknnsj2/L59+zR48GBVr15dgYGBjjGUKFFC8fHxevTRR5WUlOSyj9OnT6tLly7q2bOny3KTJk1SZGRktg+pP378uEaOHKlatWqpePHijnH4+fmpcuXK6tChg9atW+e07eTkZI0aNUo33XSTKlSo4KgfGRmpZs2aady4cUpNTXU5vty4ePGiJk+erPr166tMmTJZxtu+fXv99NNPTuufPXtWTz/9tOrXr6+QkJBM9WNiYtSmTRstXbo027pjxoxx631ks9lUvnz5PH/mWG3BggVq3ry5IiIiMo0xIiJCLVu21KJFizzS759//qlixYq5db38/Pw0a9asLG2sWbNGHTp0UFRUlOMzIePnpE6dOhoxYkS2n3lW9A3gEh4/ACALu92uyZMnq0+fPgoODvZIH5s3b9aRI0ckSQcPHlR0dLRH+nGHMUbdu3fX0qVL1aNHD/Xu3VtBQUGOc0eOHNGSJUvUunVrTZ8+XT169MhU/+TJk7rxxhu1c+dOdevWTc2aNXMEsmPHjmnnzp1666239PHHH2vFihWqWrVqpvqvvfaaHn/8cd12223617/+len5dklJSfr11181dOhQbdiwwWnYys6rr76qOXPmqHHjxk7LbNu2Ta1atdKBAwe0b9++LOcvXryoZs2aafXq1erYsaN69uypsLAw+fn5KSkpSbt379Znn32m6dOn6+uvv9bNN9+c7fV94okn9PLLL0u69P7y87v0d8SWLVtq4sSJcrWB8oULFzRixAglJye7/dqdOXr0qFq3bq3ff/9dUVFRWc4nJSWpcePGSk1N1T333KOoqCgFBgZKks6dO6edO3fqgw8+0Ndff62NGzc6zl3u7NmzuuOOO5SQkODy2k+aNEkPPvigpEvvobJlyzrOpaamqlWrVtq5c6d69eql++67T8WKFZN0KVgfOnRIX331lW644QatWLEiSz/btm1TkyZNdOrUKXXr1k1t27ZV2bJlHc9KTExM1DPPPKOPPvpIa9asUenSpXN/Mf/hscce08SJE9WlSxd17drVEcYyxrtw4UI1atRIixYtUqtWrTLVvXjxom666SZt2bJFvXr1Urdu3RyfPenp6Tp48KCWLl2qVq1a6d1339XAgQMz1d+9e7eqVKmi4cOH5zjOcuXKqUiRIvl+vfn13//+VwMHDlSzZs00YMAAx2dGxmdOQkKC2rRpo08++US9e/e2tO/Dhw8rNTVVzz77rMqXL++yrJ+fX5b316pVq9SkSRNde+216tevn8qXLy9/f39Jl35Otm/frilTpujbb7/Vr7/+qoCAv3/dzG/fAC5jAOAfdu3aZSSZxYsXe6yP5ORk07RpU9OuXTuTnp6epzY+/PBDI8lcvHgxX2NZunSpkWS++eYbp2Xsdru56667THR0tLHb7ZnODRs2zJQqVcps3rzZaf09e/aY2NhYc+edd2Y6fvbsWRMYGGhGjx7tcoz/+c9/jJ+fn9m6dasbr8iYn376yQQEBJiKFSuaxo0bZ1tm586dJjo62tSsWdOULVvWPPXUU1nKvPnmmyYgIMD88MMPTvs6duyYadSokWnQoEG238tnn33WSDJNmjTJ0/dr//79RpJJSEjIVb1/On78uKlbt64JDw83VatWNb169cpSZuzYsSY0NNTs27fPaTtbtmwxAQEB5p133sly7ty5c6ZNmzamZMmSpm7duk6v/fvvv28kmaZNmxpJJjExMdP5Dz74wAQEBJgNGzY4HcfFixfNTTfdZJo2bZrlXJcuXUzVqlVdvo7ff//dhIaGmhEjRjgt466M79F//vMfp2XS0tJM8+bNTcOGDbOcmzJlivHz8zO//vqr0/rp6emmV69epnz58ub06dOZzvXr18/ptS6MLl68aCpUqGDuvffeLJ8nGex2u+nTp4+JjIzM82ekM8uWLcv2feeupk2bmsaN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M25/vLy+n5+fAgMDtWTJkhzrW/V9ywhWdrvdZTlnY4qJiXE8uD0nO3fuzPJzlfFvV5/R0qVZ3Zo1a2b53gQHB+vbb7/NsW9n368PP/xQmzdv1vTp03P9x4z89g3gMgYAsnHrrbea6667zpw/fz7b83a73Vx77bWmdevW5uLFi9mW+f33302lSpWMJLNo0aIs55s1a2Z69eqV5fjMmTONJLNkyRKn4/vuu+9MyZIljaQs/V+8eNEcO3bM1cvLZO/evUaSmT17ttt1Ljd8+HBTqlQp88cff7jsIy4uznTt2jXLubi4OPPII4/kqe+c9OvXzzRu3DjHcjExMeapp57Kcvytt94y/v7+5vvvv3da9/jx46ZRo0amfv36Jj093Wm5Dz/8MNvvV4YRI0aYa665JsexWiG799758+dNcHCwGTBggLHb7U7rpqammltuucXUr1/fZR/uXPtly5YZSSYxMTHT8e+//95IMuvXr3f9Qpzo2rWriYuLM3v37nVa5o8//jClSpUyw4cPz1Mflxs0aJAJCwszR44ccVlu0qRJxmazmd9++y3T8QceeMDExMSY5ORkl/XHjx9vSpQoYY4fP57peK9evUx0dLRJSkpyWvf8+fOmcePGpmHDhjm8mpz9/vvvRpKZNWuW0zLffvutCQoKMpLMzp07M5178803TUBAgPn9999d9vPtt99m+9l05swZU758efPggw+6fK9m/Mzt2LEj0/FFixYZSWbOnDku+//Pf/5jbDab2bhxY6bj999/v7nuuutc1nUmv30D+Bu3VgLI1ssvv6wbb7xRNWvWVNeuXVW5cmX16tXLsdGCzWbT66+/rnbt2um6665Thw4dFBYWJmOMjhw5onXr1mnp0qUaOXKkXn755Vz13aVLFzVv3lxt27bVPffco2uuuUYhISE6e/asDh8+rO+//15r167VHXfcoXnz5mWp37t3b3322WfauHGjWw8E37Jli6RLM3zZrTO7XEBAgO6+++5MG0489dRTmj9/vurUqaNu3bqpWrVqKl++vCTpxIkTjoc2h4SEaPz48ZnaS01N1c6dO3X8+HFNnDgxx7HeeuutqlGjRo7lrDJ48GB9+umnatKkiTp27KjatWurYsWK8vf3V3Jysnbv3q1Zs2bp4sWL+vrrr50+U8sdp0+fztWGHFYLDAzUG2+8oQEDBmjTpk1q3bq1ypcv73hNFy9e1IEDBzRv3jzt2LHDow+H37Jli/z8/LR8+fIcZ7WLFSum3r17Z7rdcPz48Y7ndHXr1k1VqlRRmTJlJF3awTAxMVFffvmlYmNj9dRTT+V7vM8//7xmzpypWrVqqWfPnoqKinKMx/z1kOf169dr3rx5GjBggOrUqZOp/siRIzV9+nTVrVtXd911l8LCwhy3t5q/tuNfu3at5syZo+eff97xWjKMHTtW8fHxqlmzpnr06KHIyEjH5iNpaWk6cOCA5s6dqx07drg1c5eTmjVrql27durbt6/69++vKlWqqGjRojp37pwOHz6slStXat26dXr44Yf1+uuvZ6n/wAMPaPLkyWrQoIF69eqluLi4TLdIJicn688//9SMGTPUokULderUKVP9EiVKaPz48br//vv122+/qXnz5ipfvrz8/f1lt9t16tQp/fbbb5o9e7Z69uyZZUavVatW6ty5s+688051795d8fHxCg4Ols1mkzFGJ06c0Lp16zRv3jwNHjw4y+foli1bVKxYMbc+s2rVqqWWLVta1jeAyxRojARQqG3evNl0797dVKtWzZQoUcIsXbo0S5n169ebTp06mbi4OBMQEGACAgJMeHi46d69u1m5cqU5efKkqVChQrZ/Ve3Xr1+2s0DGXJr1GDdunGnQoIEpXbq0kWQCAwNNpUqVzN13321+/PFH8+2335oqVapkmQUaPHiwKV68uNm6datbr3PRokXG39/fSMrxy9/fP9uZwnPnzpl///vfpnHjxiY8PNxRvly5cubGG280jz32WLazBcnJySYkJMStviWZF154wa3XlOGZZ54xPXv2zLFc8+bNzbvvvpvtubS0NDNx4kTTvHlzExUVZWw2m5FkSpUqZerXr28GDx5sDh48mGMf3333Xbbfrwxjxowxffr0ybEdK/Tr1888/fTTWY7b7XazcOFC07JlSxMREeF4rZJMQECAiYuLM507d3ZrluDZZ581vXv3dlnmjz/+MBUqVMgyw/TBBx+4/Z4IDAw0W7ZsydJ2UlKSGTlypLnxxhtNuXLlHOXDw8NN48aNzYsvvuh0xj0v9uzZYwYMGGCqV69uihUrlmmMFSpUMDfddJN5//33nX7/N23aZO6++24TExNjAgICMtUvV66cadSokZk6darTGagdO3aYvn37mmrVqpmiRYtm+pmNi4szXbp0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fREoeKyRAwAAALwn10HumWeeUVpamv744w9VqFAh07mnn35aXbt21UMPPaSuXbvq999/1wMPPKAffvhBffr00Wuvvaby5ctbNngUHszIAQAAAN6T61srV65cqZ49e2YJcZJks9n0yCOP6NChQ+rRo4fq1q2rY8eOaenSpfrf//5HiLuCEeQAAAAA78l1kEtMTFSVKlWcno+JiZEkzZs3T88//7x+++03NW/ePM8DhG8gyAEAAADek+tbKy9cuKDAwECn54sWLSpJ+uijj9S9e/e8jww+Jd0R5Ap4IAAAAMBVwGPPkQsKCvJU0yiE/t7shCQHAAAAeBoPBIcluLUSAAAA8B6fDnJJSUkaNWqU4uPjFR4errCwMIWFhalWrVoaMmSIDh8+nGMba9euVceOHRUbG+uoHxkZqYYNG+q///2v0tPTM5UfM2aMQkNDHWWz+2ratKmnXnKhRZADAAAAvCfXa+SkS7tTWlEmP9LT09WqVSt17NhRCQkJKlOmjKPP5ORkffTRR2rcuLE2bNigEiVKZNvG2rVr1b17d02cOFGtWrVyrP2z2+1KTEzU448/rs2bN+u1115z1ElOTtabb76p/v37e/T1+ZqMIOfPIjkAAADA4/IU5J566imNGzcu23NpaWmSpL59+6p48eLZlqlataqWLl2al64dZs+ercqVK2vMmDFZzoWGhuqRRx7R9u3bNWXKFA0bNizbNsaMGaM333xT7du3z3Tcz89PNWrU0LRp01SrVi099thjqlixYr7Ge6XjgeAAAACA9+Q6yH3wwQfavXt3vjqNjo7OV31J2rhxo1q0aOGyTOvWrTVnzpw8txEUFKT69etry5YtBLkcOG6tFEkOAAAA8LRcB7nCckvhvn37VKdOHZdlIiIitGfPHqfnk5OTVbJkyXy1gUtYIwcAAAB4T55urSwM0tPT5e/v77JMQECA41bPvMqujYSEBM2ePVt//PGHUlJSZLPZ5O/vr8jISPXr10+DBw9WQIDzS5uamqrU1FTHv1NSUvI1xsKAIAcAAAB4j0/vWlkQatSooT179mjo0KH66aefdOjQIR06dEh79uzRp59+qm+++UavvvqqyzbGjRun0NBQx1dUVJSXRu85rJEDAAAAvOeKCXJbtmxRbGystm7dmuc2xo8fr44dO7osM2TIEC1dulRt2rRR6dKlHTtl+vv7Ky4u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burUqbCyssLu3bvV5svKysL169fh5uY2SJGpt2PHDvzpT39Sm+f27du4ceOGytcbEBHRwOCtlURERANMJBJh/fr1WLduHSoqKuTvozM3N0dvby+kUimqqqpQXFyMTZs29XslSEtLS6UVMvUpLi4OO3bsQEtLC5588kn5qpzA/Wfk7ty5g4KCAtjZ2SE6OvqxZdy7d09hdTciItIPjqxERGT0XFxc4OHhAXd39z7zenp6wsfH57Hvghs3bhw8PT1Vbuvl5aV2UuLm5gZXV1c4OjoqpaWlpSEkJATvvfcePvjgAzQ1NQG4v+LZmDFjEBAQgOzsbLz00kt97sPD9Z06dUpluoeHh8p9fZirqytcXV3h7Oys8Pkbb7wBAPj4449x8OBB+SptDzg5OSEkJAQlJSUq35F3/fr1fn0vRESkGTNBEARDB0FERESa27t3L3bs2IHLly/DzMzM0OE81ssvv4zOzk4cOHDA0KEQEQ0rfEaOiIjISM2cORMNDQ0oLS01dCiPdfv2bXzyySeIjIw0dChERMMOr8gREREZsbi4OJSUlODNN9/EtGnTMHHiRNjZ2RksHplMhpqaGly4cAGbN2/GnTt3UF9fP2Reck5ENFzwihwREZERy87ORnx8PNasWYNp06ZhwYIFBo1n3759CAkJwYsvvggXFxecPHmSkzgiogHAK3JERETDQEdHB+rq6uDg4AA/Pz+DxdHW1oazZ89i/PjxGDNmjMHiICIa7jiRIyIiIiIiMjK8tZKIiIiIiMjIcCJHRERERERkZDiRIyIiIiIiMjKcyBERERERERkZTuSIiIiIiIiMDCdyRERERERERoYTOSIiIiIiIiPDiRwREREREZGR+T9HTZOT6axysAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from quantify_scheduler.backends.types.qblox import QbloxHardwareDistortionCorrection\n", "\n", "# Set the hardware distortions for the relevant flux line.\n", "hw_cfg[\"hardware_options\"][\"distortion_corrections\"] = {\n", " \"q0:fl-cl0.baseband\": QbloxHardwareDistortionCorrection(exp0_coeffs=[res.x[1], res.x[0]])\n", "}\n", "\n", "quantum_device.hardware_config(hw_cfg)\n", "\n", "cryoscope_ds = meas_ctrl.run(f\"Cryoscope Experiment A {cryoscope_kwargs['amplitude']}\")\n", "\n", "cryoscope_result = CryoscopeAnalysis(\n", " dataset=cryoscope_ds,\n", " label=\"Cryoscope\",\n", " settings_overwrite={\"mpl_transparent_background\": False},\n", " frequency_change_to_flux=frequency_change_to_flux,\n", ").run()\n", "cryoscope_result.display_figs_mpl()" ] } ], "metadata": { "files_to_bundle_in_zip_file": [ "configs/tuning_transmon_coupled_pair_hardware_config.json", "devices/transmon_device_2q.json" ], "jupytext": { "main_language": "python", "notebook_metadata_filter": "files_to_bundle_in_zip_file" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.20" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "0164ad1254604a9b9e5428688dc7b091": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "0c0845b0e1084f669c126d1b5c853a91": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_61740a24d6af4c098d9c1ba1a562418e", "IPY_MODEL_9b4a5602bea7459ea88811db3375d615", "IPY_MODEL_3841de33994d42a88080fc968622359d" ], "layout": "IPY_MODEL_8b5860451541466c95222fea929a6d40", "tabbable": null, "tooltip": null } }, "0cbf450b33cb43dab2c6d553bea93a89": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "0dbbef6e83674175a459d6198f41a34c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "30d5acfced05489da90abc648c86018a": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "33223ef394bc4ce0bfbd5ae6624c9fd1": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "3841de33994d42a88080fc968622359d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_33223ef394bc4ce0bfbd5ae6624c9fd1", "placeholder": "​", "style": "IPY_MODEL_9634feb398554c73a274b09fe4ab61cb", "tabbable": null, "tooltip": null, "value": " [ elapsed time: 00:00 | time left: 00:00 ]  last batch size: 410" } }, "47be6966075741208bb770c09dff049e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_da06a0f969f4457e9965017c4831232c", "placeholder": "​", "style": "IPY_MODEL_49a32bbdfdbd476ebc64e2fd4e1f8880", "tabbable": null, "tooltip": null, "value": " [ elapsed time: 00:00 | time left: 00:00 ]  last batch size: 410" } }, "49a32bbdfdbd476ebc64e2fd4e1f8880": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "5c625afc0f41477baf60b2e4cc2fa2f4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_f5e23d0bad6648448d736360f2e6656b", "placeholder": "​", "style": "IPY_MODEL_b7d1ee268903485eb4eaaff16a81df5c", "tabbable": null, "tooltip": null, "value": "Completed: 100%" } }, "61740a24d6af4c098d9c1ba1a562418e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_0cbf450b33cb43dab2c6d553bea93a89", "placeholder": "​", "style": "IPY_MODEL_b32a33ca9a5745e4a85b019c28e040f5", "tabbable": null, "tooltip": null, "value": "Completed: 100%" } }, "7a1662464ed746b8af6f0d2edce99a4d": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "8b5860451541466c95222fea929a6d40": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "9634feb398554c73a274b09fe4ab61cb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "9b4a5602bea7459ea88811db3375d615": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_30d5acfced05489da90abc648c86018a", "max": 100.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_0164ad1254604a9b9e5428688dc7b091", "tabbable": null, "tooltip": null, "value": 100.0 } }, "a1ca1c79072642b8b0405260c30e3fc2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_b6221bcc8bc94897841c3cdf805301fe", "max": 100.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_0dbbef6e83674175a459d6198f41a34c", "tabbable": null, "tooltip": null, "value": 100.0 } }, "b32a33ca9a5745e4a85b019c28e040f5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "b6221bcc8bc94897841c3cdf805301fe": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "b7d1ee268903485eb4eaaff16a81df5c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "da06a0f969f4457e9965017c4831232c": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "f5e23d0bad6648448d736360f2e6656b": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "f6dfffb5a997450ba3c39de8cb2115ed": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_5c625afc0f41477baf60b2e4cc2fa2f4", "IPY_MODEL_a1ca1c79072642b8b0405260c30e3fc2", "IPY_MODEL_47be6966075741208bb770c09dff049e" ], "layout": "IPY_MODEL_7a1662464ed746b8af6f0d2edce99a4d", "tabbable": null, "tooltip": null } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }