-
Notifications
You must be signed in to change notification settings - Fork 6
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 integration weights protocol #1099
Conversation
I believe this should be ready to review. Tests are not passing because with the new post-processing we need to compute the intermediate frequency, however dummy doesn't have LOs. This problem has been fixed in #1101 which is pointing to this PR. |
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.
It looks good to me, some documentation of the fit function is missing.
Co-authored-by: Edoardo Pedicillo <edoardo.pedicillo@gmail.com>
Co-authored-by: Alessandro Candido <candido.ale@gmail.com>
Using custom `dummy` platform
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1099 +/- ##
==========================================
- Coverage 97.95% 97.79% -0.16%
==========================================
Files 99 99
Lines 8072 8087 +15
==========================================
+ Hits 7907 7909 +2
- Misses 165 178 +13
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
src/qibocal/protocols/signal_experiments/calibrate_state_discrimination.py
Outdated
Show resolved
Hide resolved
tests/platforms/mock/platform.py
Outdated
drive12 = f"{q}/drive12" | ||
qubits[q] = qubit = Qubit.default(q, drive_qudits={(1, 2): drive12}) | ||
channels |= { | ||
qubit.probe: IqChannel(device="pump_name", mixer=None, lo="01/probe_lo"), |
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.
Not very important but why is the device="pump_name"
?
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.
Probably I it should have been an f-string or I should have just passed pump_name
.
Thanks for catching this.
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 think the pump_name
is for the TWPA pump local oscillator, which we are already passing to the AcquisitionChannel
. For the probe channel it should probably be a different device (like qblox, QM, etc.), but for the mock platform it will probably work even without device, since you are not passing any device for the drive and flux either. That's also why the device
does not really matter.
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.
Oh I see, at this point we can just remove it if it is not mandatory.
Co-authored-by: Stavros Efthymiou <35475381+stavros11@users.noreply.github.com>
for more information, see https://pre-commit.ci
The previous implementation of the protocol to optimize the integration weights was based on LaboneQ and I don't think that we ever used it with QM. I've refactored the code to have a more instrument agnostic version which is assuming that with$\propto \cos(2\omega_{IF}t)$ .
AcquisitionType.RAW
the samples are returned without demodulation.In the protocol I am now doing the demodulation on software (with the addition of a low pass filter to remove fast-rotating terms
It seems that the readout fidelity improves http://login.qrccluster.com:9000/Clqog-92SlKblXqbMVo-Vw==/, however it might be good if someone else takes a look at the code.
Requires a few changes in the QM driver qiboteam/qibolab#1155