Fingerprint Parameter Priors

Note

Layer 3 shipped, Pass-1. The Layer 3 implementation (emitters, device-fingerprint, tx-impairments, propagation, rx-frontend) landed on branch rfgen-impl-2026-06-25-105955 (PR #94). The class names, Pydantic schemas, and Transformation enum members referenced below match the shipped surface; Pass-1 stubs (GNU Radio OOT emitters, cellular emitters, Sionna propagation backends) construct cleanly and raise an EmitterError or ChannelError tagged with stage="pass1_stub" until backend wiring lands. See Reference / rfgen.emitters and Reference / rfgen.channels for the shipped class roster.

These are first-pass priors for synthetic device-fingerprint generation. They are intended as starting defaults, not final compliance claims. The math and implementation order are specified in Fingerprint Math; this page only collects practical numeric ranges and their verification status.

Most rows carry an accept with caveat note: the cited source exists and the value is in the expected range, but the exact line should be checked against offline copies of the primary source before publication.

Numeric Ranges

Impairment

Consumer typical range

Lab-grade range

Primary source

Confidence

Carrier Frequency Offset (CFO)

±2 to ±20 ppm (TCXO / XO-based SDRs and consumer transceivers)

±0.02 to ±0.1 ppm (OCXO / GPSDO; 3GPP NR UE compliance around 20 to 100 ppb)

Ettus B200/B210 spec sheet [1]; 3GPP TS 38.101-1 §6.4.1 [2]

High

Sample Frequency Offset (SFO) (accept with caveat)

1 to 20 ppm (consumer SDR, WLAN OFDM symbol clock tolerance ±20 ppm)

0.01 to 0.1 ppm (OCXO / GPSDO; cellular UE post-AFC)

TorchSig v2 ClockDrift defaults [3]; IEEE 802.11-2020 §17.3.9.5 [4]

Medium

IQ Gain Imbalance (accept with caveat)

0.1 to 1.0 dB (TorchSig prior -1.0 to +1.0 dB)

below 0.05 dB after digital calibration (AD9371-class)

TorchSig v2 IQImbalance class [3]

Low

IQ Phase Imbalance (accept with caveat)

approximately ±3 degrees uncalibrated (TorchSig default ±2 degrees)

below 0.2 to 0.5 degrees after digital calibration

TorchSig v2 IQImbalance class [3]; Razavi 2012 Ch. 4 [5]

Medium

Phase Noise at 1 kHz offset (dBc/Hz, SSB) (accept with caveat)

-95 to -75 dBc/Hz at 1 kHz (consumer SDR / integrated CMOS, sub-6 GHz to 30 GHz)

-130 to -150 dBc/Hz at 1 kHz at 1 GHz carrier (OCXO-referenced lab generators)

3GPP TR 38.803 §6.1.10 Table 6.1.10-1 [6]; Leeson 1966 [7]

Medium

Phase Noise at 1 MHz offset (dBc/Hz, SSB) (accept with caveat)

-110 to -135 dBc/Hz at 1 MHz (AD9361-class, RTL-SDR 10 to 20 dB worse)

-135 to -155 dBc/Hz at 1 MHz (Keysight E8267D, R&S SMA100B with low-noise option)

3GPP TR 38.803 §6.1.10 [6]; Leeson 1966 [7]

Medium

Rapp PA smoothness factor \(p\) (accept with caveat)

1 to 4 (most common \(p = 2\) or \(p = 3\))

2 to 3 (3GPP / 802.11ad/ax evaluation methodology)

Rapp 1991 ECSC-2 [8]; MATLAB comm.MemorylessNonlinearity [9]

Medium

Saleh PA model parameters \((\alpha_a, \beta_a, \alpha_\phi, \beta_\phi)\) (accept with caveat)

canonical TWT fit [2.1587, 1.1517, 4.0033, 9.1040]

same canonical fit; ±5 to 10 percent device-to-device variation in literature

Saleh 1981 IEEE Trans. Comm. [10]; MATLAB comm.MemorylessNonlinearity [9]

Medium

DAC Effective Number of Bits (ENOB) (accept with caveat)

9 to 11 bits (12-bit nominal DACs, e.g. AD9361 in PlutoSDR / USRP B2x0)

12 to 14 bits (14- to 16-bit DACs, e.g. AD9162-class on USRP X310)

Ettus X310 spec sheet [11]; Kester MT-003 [12]; IEEE Std 1241-2010 [13]

Medium

Verification Follow-Ups

The rows marked accept with caveat need a second pass against offline copies of the primary sources.

  • SFO: Ettus B210 KB page, IEEE 802.11-2020 §17.3.9.5, and 3GPP TS 38.101-1 §6.4.1 were not directly fetched during the research pass. Only the TorchSig ClockDrift default (1, 10) ppm was verified verbatim.

  • IQ gain imbalance: Consumer and lab-grade ranges rest on literature consensus and an inaccessible AD9371 datasheet. Re-verify against Schenk, Razavi, and AD9371 datasheet Rev. G.

  • IQ phase imbalance: TorchSig default was verified. AD9361 residual calibration and 802.11 EVM-derived values are interpretive.

  • Phase noise at 1 kHz: Lab-grade end depends on R&S, Keysight, and Crystek datasheets that were not directly retrieved. Re-verify exact 1 kHz / 1 GHz numbers against current datasheet revisions.

  • Phase noise at 1 MHz: Specific lab-grade numbers and AD9361 plot reads were not directly fetched. ETSI TR 38.803 Annex A also needs confirmation.

  • Rapp \(p\): Confirm whether the intended source uses the legacy single-\(p\) Rapp form or a modified Rapp variant.

  • Saleh parameters: Confirm the canonical parameters against the original Saleh 1981 PDF. Current values are reproduced from MathWorks documentation.

  • DAC ENOB: Lab-grade upper bound is a nominal-minus-2-to-4-bits rule of thumb. Re-verify against AD9162 or X310 DAC SINAD/ENOB at typical operating bandwidth.

Library Decision

Device fingerprinting is not a single off-the-shelf block in Sionna. Sionna provides channel, OFDM, NR, MIMO, coding, signal-processing, and ray-tracing modules, but its public module surface does not expose an SEI-style persistent transmitter identity model that maps device_id to stable CFO, SFO, IQ imbalance, phase noise, PA, and DAC realizations [14].

The researched libraries cover different slices:

  • TorchSig is the closest Python/PyTorch fit for ML-oriented RF augmentation. Use it directly when a transform matches the needed tensor contract and metadata semantics.

  • MATLAB Communications Toolbox is a strong validation oracle for CFO, I/Q imbalance, phase noise, and PA distortion [9, 15, 16, 17].

  • GNU Radio provides runtime blocks for channel offset, noise, timing, and a hierarchical HW Impairments block [18, 19]. It is appropriate as a reference flowgraph or validation backend, not as the default in-process PyTorch dependency.

  • HermesPy includes oscillator phase-noise models and broader simulation abstractions [20]. It may become a validation or backend option for phase-noise work.

The design consequence is that DeviceFingerprint remains rfgen-owned for orchestration, identity, persistence, and metadata. Individual impairment operators should reuse mature implementations when they can be called directly from the Python/PyTorch data path; otherwise they should be implemented as small, cited formulas and validated against MATLAB, GNU Radio, or HermesPy fixtures.

References

  1. Ettus Research. USRP B200 / B210 Product Spec Sheet, 2019. https://www.ettus.com/wp-content/uploads/2019/01/b200-b210_spec_sheet.pdf

  2. 3GPP TS 38.101-1. NR; UE radio transmission and reception; Part 1: Range 1 Standalone, Clause 6.4.1. https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3283

  3. TorchDSP. TorchSig v2 source, torchsig/transforms/transforms.py, classes ClockDrift and IQImbalance. https://github.com/TorchDSP/torchsig/blob/main/torchsig/transforms/transforms.py

  4. IEEE Std 802.11-2020. Part 11: Wireless LAN MAC and PHY Specifications, Clause 17.3.9.5. https://standards.ieee.org/ieee/802.11/7028/

  5. Razavi, B. RF Microelectronics, 2nd ed., Pearson, 2012.

  6. 3GPP TR 38.803 V14.4.0. Study on new radio access technology: RF and co-existence aspects, §6.1.10 and §6.1.11. https://www.3gpp.org/ftp/Specs/archive/38_series/38.803/

  7. Leeson, D.B. A Simple Model of Feedback Oscillator Noise Spectrum. Proc. IEEE, 1966.

  8. Rapp, C. Effects of HPA-Nonlinearity on a 4-DPSK/OFDM-Signal for a Digital Sound Broadcasting System. Proc. ECSC-2, ESA SP-332, 1991.

  9. MathWorks. comm.MemorylessNonlinearity System object, Communications Toolbox R2024b. https://www.mathworks.com/help/comm/ref/comm.memorylessnonlinearity-system-object.html

  10. Saleh, A.A.M. Frequency-Independent and Frequency-Dependent Nonlinear Models of TWT Amplifiers. IEEE Trans. Communications, 1981. https://ieeexplore.ieee.org/document/1094957

  11. Ettus Research / NI. USRP X300 / X310 Specification Sheet, 2024-01-23. https://www.ettus.com/wp-content/uploads/2024/01/X300_X310_Spec_Sheet_2024-01-23.pdf

  12. Kester, W. MT-003 Tutorial: Understand SINAD, ENOB, SNR, THD, THD+N, and SFDR, Analog Devices, 2009. https://www.analog.com/media/en/training-seminars/tutorials/MT-003.pdf

  13. IEEE Std 1241-2010. IEEE Standard for Terminology and Test Methods for Analog-to-Digital Converters, Clause 4.5. https://standards.ieee.org/ieee/1241/4683/

  14. NVIDIA Sionna. Module index. https://nvlabs.github.io/sionna/_modules/index.html

  15. MathWorks. comm.PhaseFrequencyOffset System object. https://www.mathworks.com/help/comm/ref/comm.phasefrequencyoffset-system-object.html

  16. MathWorks. I/Q Imbalance block. https://www.mathworks.com/help/comm/ref/iqimbalance.html

  17. MathWorks. comm.PhaseNoise System object. https://www.mathworks.com/help/comm/ref/comm.phasenoise-system-object.html

  18. GNU Radio. Channel Model Block. https://wiki.gnuradio.org/index.php/Channel_Model

  19. GNU Radio. HW Impairments. https://wiki.gnuradio.org/index.php/HW_Impairments

  20. HermesPy. Phase Noise. https://hermespy.org/api/simulation/rf/noise/phase_noise.html