Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cross resonance Rabi experiment and rough amplitude calibration #1199

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

nkanazawa1989
Copy link
Collaborator

@nkanazawa1989 nkanazawa1989 commented Jun 12, 2023

Summary

This PR adds characterization and calibration experiment for cross resonance pulse amplitude. It drives the control qubit at a frequency of the target qubit, and measure the population of the target qubit and fit the data with the oscillation analysis.

Details and comments

New experiment is written in the style recently I started to use in my project, aiming at future parametric circuit execution. If this looks good, I'll refactor other experiments in the followup.

Added features are

    parameter = Parameter("some_name")
    # class variable of the parameter object to use in this class

    def parameterized_circuits(self) -> Tuple[QuantumCircuit, ...]:
        # Return parameterized circuits

    def parameters(self) -> np.ndarray:
        # Return parameter values

    def _setup(self):
        # Update minor settings, such as axis name of plotter. 
        # This avoids overhead of overriding the constructor method just for updating options.
        # i.e. subclass may want different name for Y axis, or name of the returned quantity. 

Then the conventional BaseExperiment.circuits method consumes new parameterized_circuits and parameters output to build circuit. For example, the parameters method can consider the hardware constrains such as granularity. There is no API break with this implementation.

PR checklist (delete when all criteria are met)

  • I have read the contributing guide CONTRIBUTING.md.
  • I have added the tests to cover my changes.
  • I have updated the documentation accordingly.
  • I have added a release note file using reno if this change needs to be documented in the release notes.

@nkanazawa1989
Copy link
Collaborator Author

On hold until #971 is complete. I need a two qubit backend simulator to write end-to-end test.

@nkanazawa1989 nkanazawa1989 added Changelog: New Feature Include in the "Added" section of the changelog on hold On hold until something else is done. labels Jun 12, 2023
ZX term of CR Hamiltonian has nonlinear dependency on tone amplitude, and this induces Rabi oscillation with nonlinear frequency. New fitter also considers 3rd order frequency.
@nkanazawa1989
Copy link
Collaborator Author

Bug fix for count dict key in 432219f. This commit also adds new fitter for cross resonance Rabi, since its oscillation is nonlinear because of the nonlinearity of the ZX term against the CR tone amplitude.

This notebook shows how this experiment can be used to bringup two qubit gate.
https://gist.github.com/nkanazawa1989/74d9d21f9f0757d6d44f0431b1cffb26

@CLAassistant
Copy link

CLAassistant commented Jul 18, 2023

CLA assistant check
All committers have signed the CLA.

@Shuoming
Copy link

https://gist.github.com/nkanazawa1989/74d9d21f9f0757d6d44f0431b1cffb26 regarding this notebook, I just wondering why the rz0 is defined on d0 and u1 instead of d0 and u0?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: New Feature Include in the "Added" section of the changelog on hold On hold until something else is done.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants