Feature/vz error amp#533
Open
paulQM wants to merge 4 commits into
Open
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Summary: CZ phase compensation with error amplification
Branch:
feature/vz-error-ampBase:
main(ab66cf09)Commits: 4
c3e17440123304498053e8f4f4ff5b53Summary
This PR adds a new CZ calibration node (33b) that calibrates residual single-qubit (local Z) phase shifts from the CZ macro using error amplification: the CZ gate is repeated 1…N times before a final virtual frame rotation, which makes small phase errors easier to resolve than the standard single-CZ Ramsey sequence in node 33a.
It also renames the existing phase-compensation node from
33_cz_phase_compensation.py→33a_cz_phase_compensation.pyto make room for the new variant in the CZ calibration numbering scheme.What’s new
Node 33b —
33b_cz_phase_compensation_error_amp.pyphase_shift_control/phase_shift_target.Calibration utilities —
calibration_utils/cz_phase_compensation_error_amp/New package mirroring the structure of the standard
cz_phase_compensationutilities:parameters.pyframe_range,num_frames),number_of_operations, CZ macro type, state discriminationanalysis.pyplotting.py__init__.pyAnalysis model:
For each qubit (control and target), the signal is averaged over
number_of_operations, then the peak position gives the residual phase to compensate. Fit success requires both control and target fits to succeed.Rename — node 33a
33_cz_phase_compensation.py→33a_cz_phase_compensation.py33a_cz_phase_compensation(99% content preserved; standard single-CZ phase compensation unchanged in behavior).File changes
calibration_utils/cz_phase_compensation_error_amp/(4 files)calibrations/CZ_calibrations/33b_cz_phase_compensation_error_amp.py33_cz_phase_compensation.py→33a_cz_phase_compensation.pycalibrations/1Q_calibrations/07_iq_blobs.pyStats: 7 files changed, +705 / −3 lines (vs
main).Comparison: 33a vs 33b
Use 33a for coarse or routine compensation; use 33b when residual phases are small and need amplification to measure reliably.
Notes / review items
07_iq_blobs.py— Includes a local debug override (node.parameters.qubits = ["qD3", "qA6"]) and a trailing# %%cell marker. Consider reverting before merge if these are not intentional for the repo.Test plan
use_state_discrimination=Trueon a calibrated pair; verify sinc fits succeed and plots show control/target peaks.phase_shift_control/phase_shift_targetupdate correctly in QUAM state after a successful 33b run.frame_rangeor noisy data and confirm parabolic fallback still returns a finite phase.use_state_discrimination=Falseand confirm IQ → voltage conversion and analysis still work.