Skip to content

in qblox: mixer correction per sequencer#1371

Merged
RoyStegeman merged 4 commits intomainfrom
qbloxiqmixerconfig
Jan 23, 2026
Merged

in qblox: mixer correction per sequencer#1371
RoyStegeman merged 4 commits intomainfrom
qbloxiqmixerconfig

Conversation

@RoyStegeman
Copy link
Member

@RoyStegeman RoyStegeman commented Jan 22, 2026

This has been reverted in #1374

Before this PR mixer calibration settings were configurable per port. While offset_i and offset_q are indeed port-level corrections, this is not the case for scale_q and phase_q which are at the sequencer-level. In qblox the sequencers are separate from ports or qubits.

This PR introduces the QbloxIqMixerConfig class which holds the scale and phase parameters for each sequencer.

Important

The motivation to unravel all the sequencer numbers to a single configuration, as opposed to spread these over the channel-related configs, is that the mixer calibration parameters are related to the physical sequencer objects, since they are related to analogue electronics behavior.

Instead, the channels have no stable assignment to the sequencers, which are considered to be just digital processors, and thus all equivalent (and they mostly are, other than the physical signal routing to the mixer).
And this is the reason why we want this configurations to be mapped to the actual physical object, the mixer (and not the channels, which are more "logical").

@codecov
Copy link

codecov bot commented Jan 22, 2026

Codecov Report

❌ Patch coverage is 0% with 29 lines in your changes missing coverage. Please review.
✅ Project coverage is 39.26%. Comparing base (eb6e472) to head (8b026b5).
⚠️ Report is 5 commits behind head on main.

Files with missing lines Patch % Lines
...rc/qibolab/_core/instruments/qblox/config/mixer.py 0.00% 20 Missing ⚠️
...ibolab/_core/instruments/qblox/config/sequencer.py 0.00% 4 Missing ⚠️
...c/qibolab/_core/instruments/qblox/config/module.py 0.00% 2 Missing ⚠️
src/qibolab/_core/instruments/qblox/config/port.py 0.00% 2 Missing ⚠️
...qibolab/_core/instruments/qblox/config/__init__.py 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1371      +/-   ##
==========================================
- Coverage   39.42%   39.26%   -0.17%     
==========================================
  Files         114      115       +1     
  Lines        5694     5718      +24     
==========================================
  Hits         2245     2245              
- Misses       3449     3473      +24     
Flag Coverage Δ
unittests 39.26% <0.00%> (-0.17%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@RoyStegeman RoyStegeman changed the base branch from main to qblox-configuration-api January 23, 2026 13:22
Comment on lines +14 to +19
"""qblox has 6 sequencers per module.
scale_q_*: The relative amplitude scale/factor of the q channel, to account for I-Q
amplitude imbalance.
phase_q_*: The phase offset of the q channel, to account for I-Q phase
imbalance.
"""
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe put this as the class docstring. It will be part of the public API, so it is not bad that gets printed in the Sphinx generated docs :)

Base automatically changed from qblox-configuration-api to main January 23, 2026 14:02
@RoyStegeman RoyStegeman merged commit 1b4053e into main Jan 23, 2026
38 of 39 checks passed
@RoyStegeman RoyStegeman deleted the qbloxiqmixerconfig branch January 23, 2026 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants