Skip to content

laboneq.dsl.calibration

Classes used in defining calibration for experiments.

laboneq.dsl.calibration.amplifier_pump

AmplifierPump dataclass

Settings for the SHF Parametric Pump Controller (SHFPPC).

Attributes:

Name Type Description
uid str

Unique identifier. If left blank, a new unique ID will be generated.

pump_freq float | Parameter | None

Sets the pump frequency node. Default None.

pump_power float | Parameter | None

Sets the pump power node. Default None.

cancellation bool

Enable pump tone cancellation. Default True.

alc_engaged bool

Enable the automatic level control for pump tone output. Default True.

use_probe bool

Enable probe tone output. Default False.

probe_frequency float | Parameter | None

Sets the frequency of the generated probe tone. Units: Hz. Default: None.

probe_power float | Parameter | None

Sets the output power of the generated probe tone. Units: dBm. Default: None.

Notes

If an attribute is set to None, the corresponding node is not set.

laboneq.dsl.calibration.calibratable

Calibratable

Bases: ABC

Abstract base class for objects that can have calibration attached.

Attributes:

Name Type Description
calibration Optional[SignalCalibration]

The calibration for this object. Implementations of Calibratable should document and set this attribute.

create_info()

Return the calibration type and status in a dictionary.

Used for introspection and debugging.

is_calibrated() abstractmethod

Return True if calibration has been set on this object.

Implementations of Calibratable should document and implement this method.

laboneq.dsl.calibration.calibration

A container for calibration items.

Calibration dataclass

Calibration object containing a dictionary of CalibrationItems.

Attributes:

Name Type Description
calibration_items

mapping from a UID of a Calibratable to the actual CalibrationItem.

items()

Return a iterator over calibration items.

Returns:

Name Type Description
items Iterator[tuple[str, CalibrationItem]]

An iterator over tuples of UIDs and calibration items.

keys()

Returns an iterator over calibration UIDs.

Returns:

Name Type Description
keys Iterator[str]

An iterator over UIDs.

load(filename) staticmethod

Load calibration data from file.

The file is in JSON format, as generated via .save().

Parameters:

Name Type Description Default
filename str

The filename to load data from.

required

save(filename)

Save calibration data to file.

The file is written in JSON format.

Parameters:

Name Type Description Default
filename str

The filename to save data to.

required

values()

Returns an iterator over calibration items.

Returns:

Name Type Description
values Iterator[CalibrationItem]

An iterator over calibration items.

laboneq.dsl.calibration.calibration_item

CalibrationItem

A base class for calibration items.

laboneq.dsl.calibration.mixer_calibration

MixerCalibration dataclass

Bases: Observable

Data object containing mixer calibration correction settings.

Attributes:

Name Type Description
uid str

A unique id for the calibration. If not supplied, one will be generated.

voltage_offsets Optional[List[float]]

DC voltage offsets. Supplied as a list of two values (for I and Q channels) Units: Volts. Default: None.

correction_matrix Optional[List[List[float]]]

Matrix for correcting the gain and phase mismatch between I and Q. If None, no correction is performed.

Examples:

Create a mixer calibration:

>>> MixerCalibration(
        voltage_offsets=[0.02, 0.01],
        correction_matrix=[[1.0, 0.0], [0.0, 1.0]],
    )

laboneq.dsl.calibration.oscillator

Oscillator dataclass

This oscillator class represents an oscillator on a PhysicalChannel. All pulses played on any signal line attached to this physical channel will be modulated with the oscillator assigned to that channel.

Attributes:

Name Type Description
frequency float

The oscillator frequency. Units: Hz.

modulation_type ModulationType

The modulation type (ModulationType.SOFTWARE or ModulationType.HARDWARE). When choosing a HARDWARE oscillator, a digital oscillator on the instrument will be used to modulate the output signal, while the choice SOFTWARE will lead to waveform being modulated in software before upload to the instruments. The default, ModulationType.AUTO, falls back to ModulationType.Software.

carrier_type CarrierType

Deprecated. The carrier type is no longer used. Default: CarrierType.RF.

Deprecated in 2.7

The carrier_type has no effect.

laboneq.dsl.calibration.precompensation

BounceCompensation dataclass

Bases: Observable

Parameters for the bounce correction component of the signal precompensation.

Use to correct reflections resulting from impedance mismatches.

Bounce compensation adds to the original input signal the input signal multiplied by a given amplitude and delayed by a given time.

See Filter Chain Specification for a description of the filter.

Attributes:

Name Type Description
delay

The time to delay the added copy of the input signal by. Default: 0.0.

amplitude

The factor to multiply the amplitude of the added copy of the input signal by. Default: 0.0.

Note

Only supported on the HDAWG with the precompensation option. Ignored on other devices.

ExponentialCompensation dataclass

Bases: Observable

Parameters for exponential under- and overshoot compensation.

Used to compensate for distortions due to LCR elements such as inductors, resistors, and capacitors.

See Filter Chain Specification for a description of the filter.

Attributes:

Name Type Description
timeconstant float

Exponential filter time constant. Default: 1e-6.

amplitude float

Exponential filter amplitude. Default: 0.0.

Note

Only supported on the HDAWG with the precompensation option. Ignored on other devices.

FIRCompensation dataclass

Bases: Observable

Parameters for FIR filter signal precompensation.

Used to compensate for short time-scale distortions.

The FIR filter performs a convolution of the input signal with the kernel specified by the coefficients below.

See Filter Chain Specification for a description of the filter.

Attributes:

Name Type Description
coefficients

Coefficients for the FIR filter convolution kernel. The first 8 coefficients are directly applied to the first eight taps of the FIR filter at the full time resolution. The remaining 32 coefficients are applied to pairs of taps. Default: np.zeros(40).

Note

Only supported on the HDAWG with the precompensation option. Ignored on other devices.

HighPassCompensation dataclass

Bases: Observable

Parameters for highpass filter signal precompensation.

Used to compensate for distortions due to AC-coupling, DC-blocks and Bias-tees.

See Filter Chain Specification for a description of the filter.

Attributes:

Name Type Description
timeconstant float

High-pass filter time constant. Default: 1e-6.

clearing HighPassCompensationClearing

Deprecated and has no effect. Default: None.

Note

Only supported on the HDAWG with the precompensation option. Ignored on other devices.

Changed in version 2.8

Deprecated clearing argument: It has no effect.

Precompensation dataclass

Bases: RecursiveObservable

Signal precompensation parameters.

Attributes:

Name Type Description
uid

Unique identifier. If left blank, a new unique ID will be generated.

exponential

List of exponential precompensation filters. Default: None.

high_pass

A high pass precompenstation filter. Default: None.

bounce

A bounce precompensation filter. Default: None.

FIR

A FIR precompensation filter. Default: None.

Setting or leaving an attribute above to None will disable the corresponding filter.

Note

Setting a precompensation filter may introduce a signal delay. The LabOne Q compiler will take this delay into account, but it will still be visible in the pulse sheet and when measuring the signal by other means (e.g. using an oscilloscope).

See Filter Chain Specification for details on the delays.

Note

Only supported on the HDAWG with the precompensation option. Ignored on other devices.

is_nonzero()

Returns True if any filters are set.

Returns:

Type Description
bool

True if any filters are defined. False otherwise.

laboneq.dsl.calibration.signal_calibration

SignalCalibration(amplitude=None, delay_signal=None, local_oscillator=None, voltage_offset=None, mixer_calibration=None, precompensation=None, oscillator=None, port_delay=None, port_mode=None, range=None, threshold=None, amplifier_pump=None) dataclass

Bases: Observable

Calibration parameters and settings for a LogicalSignal.

Attributes:

Name Type Description
oscillator Oscillator | None

The oscillator assigned to the signal. Determines the frequency and type of modulation for any pulses played back on this line. Default: None.

local_oscillator Oscillator | None

The local oscillator assigned to the signal. Sets the center frequency of the playback. Only supported by SHFSG, SHFQA and SHFQC signals. Default: None.

mixer_calibration MixerCalibration | None

Mixer calibration correction settings. Only supported by HDAWG IQ signals. Default: None.

precompensation Precompensation | None

Signal distortion precompensation settings. Only supported by HDAWG signals. Default: None.

port_delay float | Parameter | None

An optional delay of all output on this signal. Implemented by setting delay nodes on the instruments, and will not be visible in the pulse sheet. Not currently supported on SHFSG output channels. Units: seconds. Default: None.

port_mode PortMode | None

On SHFSG, SHFQA and SHFQC, the port mode may be set to select either amplified high-frequency mode (PortMode.RF, default) or baseband mode (PortMode.LF). Default: None.

delay_signal float | None

Defines an additional global delay on this signal line. Implemented by adjusting the waveforms and sequencer code emitted for this logical signal, and is thus visible in the pulse sheet. Default: None.

voltage_offset float | None

On the HDAWG lines, the voltage offset may be used to set a constant voltage offset on individual RF line.

range int | float | None

The output or input range setting for the signal.

threshold float | list[float] | None

Specify the state discrimination threshold. Only supported for acquisition signals on the UHFQA, SHFQA and SHFQC.

amplitude float | Parameter | None

Amplitude multiplying all waveforms played on the signal line. Only supported by the SHFQA.

amplifier_pump AmplifierPump | None

Parametric Pump Controller settings.

amplifier_pump = amplifier_pump instance-attribute

amplitude = amplitude instance-attribute

delay_signal = delay_signal instance-attribute

local_oscillator = local_oscillator instance-attribute

mixer_calibration: MixerCalibration property writable

oscillator = oscillator instance-attribute

port_delay = port_delay instance-attribute

port_mode = port_mode instance-attribute

precompensation: Precompensation property writable

range = range instance-attribute

threshold = threshold instance-attribute

voltage_offset = voltage_offset instance-attribute

laboneq.dsl.calibration.units

Quantity dataclass

A quantity with units.

Attributes:

Name Type Description
value float

The value of the quantity.

unit Unit

The unit the quantity value is specified in.

unit: Unit instance-attribute

value: float instance-attribute

Unit

Bases: _StrEnum

An Enum of available calibration units.

dBm = 'dBm' class-attribute instance-attribute

volt = 'volt' class-attribute instance-attribute

Volt(val)

Return a quantity with the unit Volt.

Parameters:

Name Type Description Default
val float

The voltage.

required

Returns:

Type Description
Quantity

A quantity in volts.

dBm(val)

Return a quantity with the unit dBm.

Parameters:

Name Type Description Default
val float

The power in dBm.

required

Returns:

Type Description
Quantity

A quantity in dBm.