quchip.control.signal¶
Signal-chain transforms for control equipment.
Transforms operate on complete analytic signals keyed by
(line_label, source_index) and are owned by
ControlEquipment (not by individual
drives). The equipment applies them after scheduling and before each
destination drive maps physical I/Q quadratures into the Hamiltonian.
Available transforms¶
Delay— per-line time shift.Gain— per-line complex scaling (IQ imbalance, attenuation).Crosstalk— linear leakage from a source line onto a victim line, parameterized by amplitudebeta, angletheta, and relativedelay. This is the standard single-parameter crosstalk model used e.g. in Sheldon et al., PRA 93, 060302 (2016) for two-qubit gate calibration, and in Sarovar et al., Quantum 4, 321 (2020) for crosstalk characterization.
Examples
>>> from quchip import ChargeDrive, Crosstalk, Delay, Gain
>>> # Crosstalk between two already-constructed drives:
>>> # xt = Crosstalk(source=drive_a, victim=drive_b, beta=0.02, theta=0.1)
Classes
|
Complete complex classical signal delivered on one control line. |
|
Linear crosstalk from a source drive line onto a victim line. |
|
Shift every signal on line in time by |
|
Scale every signal on line by a complex factor. |
Abstract base for signal-map transforms, auto-registered for serialization. |
- class quchip.control.signal.AnalyticSignal(program, carrier=None, phase_reference=None)[source]¶
Bases:
objectComplete complex classical signal delivered on one control line.
programincludes the envelope, schedule timing and phase, and any carrier. Classical equipment transforms this complete value before a drive maps its physical quadratures into the quantum Hamiltonian.- Parameters:
program (SignalNode)
carrier (Any | None)
phase_reference (Any | None)
- program: SignalNode¶
- classmethod from_pulse(pulse)[source]¶
Build the complete scheduled signal for one pulse record.
- Parameters:
pulse (Any)
- Return type:
- property i: PhysicsExpr¶
In-phase physical quadrature of the delivered signal.
- property q: PhysicsExpr¶
Quadrature-phase physical component of the delivered signal.
- shifted(delta_t)[source]¶
Return the signal delayed by
delta_tns.- Parameters:
delta_t (Any)
- Return type:
- scaled(factor)[source]¶
Return the signal multiplied by a complex factor.
- Parameters:
factor (Any)
- Return type:
- class quchip.control.signal.SignalTransform[source]¶
Bases:
Registrable,ABCAbstract base for signal-map transforms, auto-registered for serialization.
The type registry, the
{"type": ...}to_dict()stamp, and thefrom_dictdispatch are owned by the sharedRegistrablemixin; the parameter-less default reconstruction (cls()) covers transforms that carry no persisted state, while payload-carrying transforms overrideto_dict()/from_dict().- with_parameter_value(name, value)[source]¶
Return this transform with one declared numerical value replaced.
- Parameters:
- Return type:
- abstractmethod apply(signals)[source]¶
Return the transformed signal map.
- Parameters:
signals (dict[tuple[str, int], AnalyticSignal])
- Return type:
dict[tuple[str, int], AnalyticSignal]
- without_line(line)[source]¶
Return this transform without line, or
Nonewhen it must be dropped.- Parameters:
line (str)
- Return type:
SignalTransform | None
- class quchip.control.signal.Delay(line, delta_t)[source]¶
Bases:
SignalTransformShift every signal on line in time by
delta_tns.- apply(signals)[source]¶
Time-shift every signal on
linebydelta_tns.- Parameters:
signals (dict[tuple[str, int], AnalyticSignal])
- Return type:
dict[tuple[str, int], AnalyticSignal]
- classmethod from_dict(d)[source]¶
Reconstruct from
to_dict()output.On the registry root, dispatch to the concrete subclass named by
data["type"](forwarding*args/**kwargs). On a concrete subclass, defer to_from_dict_payload(). Concrete subclasses that carry payload override this method directly.
- class quchip.control.signal.Gain(line, factor)[source]¶
Bases:
SignalTransformScale every signal on line by a complex factor.
- apply(signals)[source]¶
Scale every signal on
lineby the complexfactor.- Parameters:
signals (dict[tuple[str, int], AnalyticSignal])
- Return type:
dict[tuple[str, int], AnalyticSignal]
- classmethod from_dict(d)[source]¶
Reconstruct from
to_dict()output.On the registry root, dispatch to the concrete subclass named by
data["type"](forwarding*args/**kwargs). On a concrete subclass, defer to_from_dict_payload(). Concrete subclasses that carry payload override this method directly.
- class quchip.control.signal.Crosstalk(source, victim, beta, theta=0.0, delay=0.0)[source]¶
Bases:
SignalTransformLinear crosstalk from a source drive line onto a victim line.
For each scheduled operation on the source line, adds
\[\beta\, e^{i\theta}\, s_\mathrm{src}(t - \Delta t)\]onto the victim line. \(s_\mathrm{src}\) is the complete source signal, including its carrier, phase, and both quadratures. Delaying it therefore includes the carrier phase \(2\pi f\Delta t\) without a separate correction (Balewski et al., arXiv:2502.05362; Sheldon et al., PRA 93, 060302 (2016); Sarovar et al., Quantum 4, 321 (2020)).
- Parameters:
- apply(signals)[source]¶
Add the phase-rotated, delayed source signal onto the victim line.
- Parameters:
signals (dict[tuple[str, int], AnalyticSignal])
- Return type:
dict[tuple[str, int], AnalyticSignal]
- classmethod from_dict(d)[source]¶
Reconstruct from
to_dict()output.On the registry root, dispatch to the concrete subclass named by
data["type"](forwarding*args/**kwargs). On a concrete subclass, defer to_from_dict_payload(). Concrete subclasses that carry payload override this method directly.