# Get to the heart of real quantum hardware

The ideal in any research field is unfettered access to resources, regardless of location. In quantum computing, certain research activities have always been limited to a handful of labs, and to a handful of researchers…but with our newest, freely available device, *ibmq_armonk*, we take one more step toward bringing the lab to the cloud. *ibmq_armonk* features *pulse-level control,* and when coupled with today’s release of the new version of Qiskit (version 0.14), any IBM Quantum Experience user now has the ability to construct schedules of pulses and execute them. The role of experimental quantum physicist is now available to anyone with internet access.

What exactly does pulse-level control mean? With pulses, you can dig deep into the heart of a quantum device and study the system as if you were physically present in the lab. Quantum computers are controlled with ultra-precise pulses that stimulate the qubits and manipulate their state. Developing and calibrating these pulses is an active area of research that was previously only possible inside a lab with “hands on the hardware.” The pulse module in Qiskit extends this capability to anyone through the IBM Quantum Experience. Users are able to directly control the implementation of gates and measurements, which are the building blocks of quantum circuits. This in turn allows users to improve the execution of their quantum programs and applications. This is the first step in our plan to give users full control over our quantum systems. Early next year we will roll out this feature on larger, more complex systems.

When building a quantum system like a qubit or harmonic oscillator, the most fundamental property is the system’s resonance frequency. Consider your favorite musical instrument. The shape of the instrument determines the timbre of the notes that it can play. Likewise, a quantum device has characteristic frequencies that are determined by its physical properties. The IBM Quantum devices are comprised of multiple qubit and LC oscillator components, each having a well-defined frequency. We design our devices targeting frequencies in the range of 5-7 GHz, but due to small variations (especially in the qubit Josephson energy), they fluctuate from these ideal values. Therefore, the first tool needed in characterizing a quantum system is a method to determine these perturbed frequencies. Probing quantum systems at this fundamental level is exactly what Qiskit’s pulse-level control capabilities were designed to do.

To perform an experiment, we build a schedule consisting of qubit stimulus pulses that are constructed using Qiskit’s pulse library. After choosing our pulse, we schedule it at the start of the program on the qubit’s drive channel. When on resonance with the qubit frequency, the drive pulse will excite the qubit, causing it to rotate on the Bloch sphere. As we sweep the qubit drive frequency, we can expect to increasingly excite the qubit as we lessen the gap between the drive frequency and the qubit’s resonance frequency.

To extract data from the system, we must perform a measurement, which with pulse is now in your control. After the qubit stimulus pulse, we provide a measurement stimulus on the measure channel, which is a pulse of a different shape. This pulse measures the qubit, then travels out of the fridge, carrying information about the state of the qubit via its shape. To detect this output signal, we schedule an acquisition of this measurement. An example of this pulse schedule construction in shown in Fig. 1a.

Once we have constructed our pulse program, we must configure it to sweep over a range of frequencies that includes the qubit resonance frequency, and choose the type of data to receive from the device. Qiskit’s pulse control provides access to data at one of three measurement settings:

- The raw mixed down signal detected by the acquisition statement.
- The summed raw signal after the application of an optimal filtering transformation.
- The discriminated signal, i.e., a 0 or 1, just as in a circuit measurement.

After constructing our program and configuring the experiment to sweep over frequencies, we submit it to the backend. Once we receive experiment results, the data can be fit and plotted as a function of drive frequency, giving a response curve centered about the qubit resonance frequency (see Fig. 1b).

Congratulations – you are now an experimental quantum physicist!

Figure 1: a) Constructing a collection of pulse schedules in Qiskit that performs a sweep of the qubit resonance frequency with a fixed-amplitude drive pulse. b) Response curve of data from the ibmq_armonk device, reflecting a qubit frequency of 4.974 GHz.

As a new quantum experimentalist evaluating a quantum system, you must first ask: is this a qubit, or a harmonic oscillator degree of freedom? To answer this question, start by trying to see Rabi oscillations. Nothing is more fundamental in demonstrating the qubit nature of a system than this experiment. In fact, less than 15 years ago, seeing a high-quality Rabi oscillation was groundbreaking. Today, with IBM Quantum and Qiskit, you can run this experiment while sitting at your favorite coffee shop.

This experiment involves applying a stimulus drive to the system and sweeping over the drive amplitude. The output for a two-level system will oscillate continuously between 0->1->0->1 and so on. In contrast, the output for a harmonic oscillator system becomes increasingly more excited as we drive power into the system with increasing drive amplitudes, never returning to the 0 state.

The Rabi experiment is thus much the same as the resonance sweep experiment above, except that instead of sweeping the pulse frequency, we construct several schedules sweeping the pulse amplitude, and fix our frequency to be on resonance with the qubit (Fig. 2a-b). Here we use the frequency we found in the first experiment (this is an example of how calibration experiments commonly build on one another). The qubit will now oscillate around the Bloch sphere proportional to the amplitude of the pulse.

Upon running our Rabi experiment, we observe a very clean Rabi oscillation (Fig. 2c). We may fit this to find the amplitude that excites the qubit entirely; this is our pi-pulse, also known as an X gate (Fig. 2d). To find our pi/2-pulse, we select the amplitude that is half the X value, or X90 gate, which is the pulse that places our qubit in an equal superposition of the ground and excited state. We have now calibrated our first quantum gates!

Figure 2: a) Code for building a collection of pulse schedules consisting of Gaussian pulses with different drive amplitudes in Qiskit. b) A specific pulse sequence plotted from a schedule in (a). c) Qubit response as a function of drive amplitude. The first minimum gives the amplitude at which this pulse performs a pi-rotation of the qubit. d) The rotation of the qubit state as seen on the Bloch sphere. The pi-rotation around the x-axis of the sphere yields the X-gate on the corresponding qubit.

Once we have determined the strength of the pi-pulse, we can then prepare the |1> state of the qubit and measure the duration of time that it takes for the qubit to relax in energy back to the |0> state. Figure 3a demonstrates the pulse schedule construction for such an experiment, where we use a pi-pulse on qubit 0 of the *ibmq_armonk* device to prepare the |1> state, then measure the resulting state after a variable time-delay (Fig. 3b). The measured data shows an exponential decay, allowing us to extract the qubit’s energy relaxation time, T1, from the time constant of the fitted decay curve (Fig. 3c).

Figure 3: a) A series of pulse schedules consisting of a pi-pulse separated by a variable delay. b) A pulse sequence from (a) showing the delay between stimulus and measurement. c) T1 time computed by fitting a decaying exponential to data returned from the ibmq_armonk device.

A similar experiment can be done to measure the *coherence* time of the qubit, which is the time at which the delicate quantum state phase relationships start to become randomized. In this experiment, the pulse schedule implements a Hahn echo sequence: we prepare a superposition state (|0>-i|1>) using a pi/2-pulse, followed by a pi-pulse after a delay time tau/2. At time tau, we apply a pi/2-pulse once again to measure along the z-basis (see Fig. 4a-b). See Fig. 4c for the pulse schedule for such an experiment in Qiskit. The resulting calculation of T2 is shown in Fig. 4d.

Figure 4: a) Pulse sequence for a Hahn echo experiment. b) Bloch sphere representation of the pulse sequence. The first pulse rotates the qubit to the superposition state |0>-i|1>, after which the qubit diffuses along the equator for a time set by the delay time tau. The pi-pulse effectively reverses this diffusion, after which the final pi/2-pulse brings the qubit back to the computational basis. c) Code for constructing the pulse schedules that implement this experiment. d) The resulting T2 time calculated for the ibmq_armonk device.

These examples represent some of the foundational experiments in all of quantum computation. All were performed using a single qubit and pulse-level access to the IBM Quantum devices provided by Qiskit and its pulse control framework. To run them yourself, check out this chapter from our open-source textbook “Learn Quantum Computation With Qiskit”.

As pulse-enabled multi-qubit devices come online, the wealth of physics that is available via Qiskit grows dramatically. From two-qubit gate calibration and pulse-shaping to Hamiltonian tomography and custom entangling gates for near-term applications, Qiskit and the IBM Quantum lineup of devices are ready to explore some of the most important questions in near-term quantum computation and applications. Are you?