rfgen.hardware

Scientific validation

The transmit-side impairment models have been scientifically validated against published references. See:

The package owns the device impairment models: what the radio itself does to the signal, as distinct from what the medium does to it. The medium lives in rfgen.engine; the receive-side stages live on the receiver-stages page.

Module

What it ships

rfgen.hardware.tx

The five Group.TX ABCs and their concretes: DAC quantization, PA nonlinearity, TX phase noise, TX IQ imbalance, and carrier-frequency offset

rfgen.hardware._leeson

The Leeson oscillator phase-noise synthesizer, shared by LeesonTXPhaseNoise and by the receiver’s RXPhaseNoiseStage. Private: it is a leaf model, not a plug-in surface

Every class here is a BaseChannel subclass pinned to one Transformation slot, resolved through the rfgen.channels entry-point group. The group name is unchanged by the move to this package: selector names and the YAML configuration surface are the compatibility users depend on, and neither changed.

TX impairments (rfgen.hardware.tx)

ABC

Transformation

Concretes shipped

BaseDACQuantization

DAC = 11

LinearDACQuantizer (inline mid-tread uniform quantizer)

BasePANonlinearity

PA = 12

RappPA, SalehPA; helper select_pa_nonlinearity() routes by PAModel

BaseTXPhaseNoise

TX_PHASE_NOISE = 13

LeesonTXPhaseNoise (shared rfgen.hardware._leeson synthesizer)

BaseTXIQImbalance

TX_IQ_IMB = 14

LinearTXIQImbalance (inline differential I/Q model; see class docstring for Library-First override rationale)

BaseCFO

CFO = 15

LinearCFO (signal * exp(j*2*pi*f0*t))

The per-device fingerprint that several of these transformations read lives in rfgen.calibration.fingerprint; see Device Fingerprint.

See Also