-
Notifications
You must be signed in to change notification settings - Fork 7
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
Refactor ramsey to use detuning instead of number of oscillations #721
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #721 +/- ##
==========================================
- Coverage 97.19% 97.10% -0.10%
==========================================
Files 110 110
Lines 7632 7559 -73
==========================================
- Hits 7418 7340 -78
- Misses 214 219 +5
Flags with carried forward coverage won't be shown. Click here to find out more.
|
@@ -166,48 +152,18 @@ def _acquisition( | |||
errors=errors, | |||
), | |||
) | |||
if params.n_osc != 0: | |||
|
|||
if params.detuning != 0: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we still need a separate case for detuning != 0
? If we are detuning the frequency, I think we can use the same sweeper in both cases. It is not like before that we had to sweep the phase together with the duration which was not supported.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed when I was refactoring I was thinking that we can avoid having the two different cases.
Perhaps it could be useful to keep also a version with unrolling given that some instruments (qblox) have memory issues when dealing with duration sweepers. Let me know what you think.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now both ramsey and ramsey detuned work with sweepers.
I kept the option for unrolling
: if the user set unrolling=True
the platform will unroll the sequences instead of using the sweeper.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've also decided to drop ramsey_sequences
since everything should be now included in ramsey
and ramsey_signal
.
Could you add some of the images that you get from running this one on the available chip. Detune around 1 MHz and with maximum duration of around 2000 ns. With this, we should also be able to detect the right direction of the detuning and correct it accordingly. |
The PR is now ready to review. I've performed some tests with both unrolling/sweepers and I've tested also that the correction for the drive frequency has the correct sign. |
Refactoring all Ramsey protocol to use directly a
detuning
parameter instead of the number of oscillations.In this way the detuning is introduced directly and not artificially through the phase as already mentioned in #696.
I also tried to remove some code duplication.
I'm planning to do also the following:
Checklist:
master
main
main