Introduced in version 3.8.2

Power Calibration describes the relationship between an AWG output and the power actually delivered at the spectrometer output. It lets you request a waveform by its normalized amplitude (the AWG sample magnitude, in the range [0, 1]) while knowing the real output power that amplitude produces, accounting for amplifier compression.

An RF power amplifier is linear only up to a point: as the drive grows the output power eventually saturates (compresses), so the requested and produced powers no longer match. A power calibration is a measured curve of amplifier input vs. output power together with a few scalar parameters describing the AWG drive. SpecMan uses it in two directions:

  • Predistortion (automatic) — when a waveform is generated, the AWG driver predistorts the samples so the intended output power is produced even where the amplifier compresses.
  • Conversion (on demand) — the Compound Property functions pcal_* convert between AWG amplitude / drive power and delivered output power, in either direction, so power-domain quantities can be computed and displayed.

Power calibrations are defined in the [PowerCalibrations] section of the Device Configuration (CFG), and are shown — with the scalar values editable — in the Spectrometer Configuration dialog.

Each calibration relates a normalized AWG amplitude a in [0, 1] to the amplifier output power through this chain:

  AWG drive  (dBm) = UnitPower + 20*log10(a)     -- AWG output at amplitude a
  amp input  (dBm) = drive + SystemGain          -- linear-ideal amplifier output
  amp output (dBm) = curve(amp input)            -- measured compression curve
Scalar parameters
Parameter Meaning
UnitPower AWG output power (dBm) at full-scale sample magnitude (amplitude = 1.0).
SystemGain Gain (dB) from the AWG output to the amplifier output; the linear-ideal full-scale output is UnitPower + SystemGain.
MaxAllowedInput Highest permissible AWG drive (dBm). Predistortion warns and clamps if a waveform would exceed it.
MinPower, MaxPower Low / high end (dBm) of the calibration's valid output-power range. MaxPower is the amplifier ceiling used to clamp predistortion requests.

The measured curve is stored in a .pcal file (JSON), referenced from the calibration. It holds the input/output power pairs and the valid-range metadata:

{"units":{"input":"dBm","output":"dBm"},
 "minPower":-20, "maxPower":5,
 "table":[[in0,out0],[in1,out1], ...]}

When no curve is loaded every relation degrades to the linear-ideal form UnitPower + SystemGain + 20*log10(a) — calibration becomes a pure passthrough.

Before an AWG driver packs a generated waveform it passes the sample buffer through the calibration. Each sample's magnitude is predistorted so the intended output power is produced despite compression; the sign (for real channels) or the phase (for IQ pairs) is preserved. If a request would exceed MaxPower, MaxAllowedInput, or the DAC full scale, the value is clamped and a single summary warning is posted to the message log.

The Compound Property engine exposes four calibration functions. Each takes a calibration index (the 0-based position in the [PowerCalibrations] table) and a value. The drive side is the AWG — amplitude in [0, 1] or drive power in dBm — and the output side is always power in dBm.

pcal_* compound functions
Function Direction Returns
pcal_AWG(i, amp) forward output power (dBm) for AWG amplitude amp
pcal_dBm(i, drive) forward output power (dBm) for AWG drive power drive (dBm)
pcal_inv_AWG(i, P) inverse AWG amplitude in [0, 1] needed for output power P (dBm)
pcal_inv_dBm(i, P) inverse AWG drive power (dBm) needed for output power P (dBm)

See Compound Property for how to define a compound property that uses these, and for the exact argument and error rules. The function names are case-sensitive (pcal_dBm, not pcal_dbm).

The central use of the calibration is to find the highest AWG amplitude that still stays in the linear (calibrated) region, and to use it as a ceiling on the amplitudes in your Pulse Programming Language program. Driving above this level pushes the amplifier into compression, where the requested and produced powers diverge.

The inverse function gives this limit directly — the amplitude that reaches the top of the valid power range:

[Compound]
MaxAWG            = , r, nohshake, 0.01, 0.01, 2, 0, 1
MaxAWG.definition = pcal_inv_AWG(0, 5)        ; 5 dBm = MaxPower of calibration 0

which, for a typical setup, evaluates to something like 0.67. Read that value from the @System property and use it as the maximum amplitude in your experiment.

Planned. SpecMan will compute and display this maximum AWG level automatically for the power domain (for example 0.67), and — combined with a frequency calibration — a second maximum (for example 0.55) that also guarantees linearity across the pulse's frequency range. You will then plug the lower of the two into the PPL / experiment as the amplitude ceiling. These automatic readouts are not yet available; for now compute the power-domain limit with pcal_inv_AWG as shown above.

See also:

Compound Property, Virtual Channel, Device Configuration (CFG)