RF Frontend Models¶
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.
This page collects the receiver- and transmitter-frontend equations used by the channel-layer concept pages. It is reference material for implementers and validators; concept pages should link here rather than carrying full derivations inline.
The RX-side transformations in Group.RX_CAPTURE and Group.RX_HARDWARE apply these models after the per-RX sum across in-band emitters. The TX-side transformations in Group.TX apply overlapping models before propagation. The same formula can appear on both sides of the link, but the scope differs: TX parameters are keyed by device_id, while RX parameters are keyed by rx_index.
Receiver Ordering¶
The default RX frontend order is:
LNA noise figure -> RX phase noise -> RX IQ imbalance -> ADC quantize/clip
This mirrors direct-conversion and superheterodyne SDRs: amplification first, LO mixing and phase noise, quadrature separation and IQ imbalance, then ADC sampling [1, 6, 7]. Reordering changes impairment statistics and should only be allowed for explicit ablation studies.
Noise Figure¶
The first amplifier in the receive chain dominates total noise figure when its gain is sufficient. Friis’ cascade formula is:
where \(F_i\) and \(G_i\) are linear noise factor and linear gain for stage \(i\) [1]. Converted to dB:
For the default RX frontend configuration surface, lna_nf_db is the receiver noise figure that feeds the downstream AWGN noise-floor calculation:
at the IEEE reference temperature \(T_0 = 290\) K [3]. BaseLNANoise in Group.RX_CAPTURE realizes this as additive noise samples on the per-RX combined signal; see Concepts / Channels / RX capture. A separate Group.CHANNEL AWGNChannel is also shipped under rfgen.propagation as the default pure-torch propagation backend (validated against the QPSK BER round-trip from Proakis-Salehi); it adds noise scaled to a configured snr_db against the input signal’s measured power rather than computing thermal noise from kTBF. Pipelines may use either (or both, in series) depending on whether the noise model is parameterised by SNR or by receiver noise figure.
Phase Noise¶
The local oscillator mixes the RF signal to or from baseband. Phase noise multiplies onto the complex signal as
where \(\theta(t)\) is a random phase process. Leeson’s empirical model describes oscillator phase-noise regions caused by flicker noise, thermal noise, finite resonator Q, and active-device noise [4].
RX and TX phase noise must be realized independently unless the scenario explicitly models a shared reference clock. For SEI datasets targeting transmitter identity, TX phase noise is part of the device fingerprint while RX phase noise is nuisance variability.
IQ Imbalance¶
Quadrature gain mismatch \(g\) and phase error \(\phi\) produce the canonical imbalance model:
with
The conjugate term \(\beta x^*\) is the image at the mirror frequency. Its strength relative to the desired signal is the image rejection ratio:
For OFDM receivers, IQ imbalance maps an interferer at \(-f\) onto the desired subcarrier at \(+f\). Implementations must record the realized gain and phase mismatch parameters in metadata.
ADC and DAC Quantization¶
A linear converter of \(N\) bits has ideal full-scale sinusoid SNR:
The 6.02 term is per bit, and the 1.76 term comes from the sinusoid crest factor relative to uniform quantization noise [2, 5].
Real converters do not achieve ideal SNR. Effective Number of Bits from measured SINAD is:
per IEEE Std 1241 [2].
Inputs exceeding full scale are hard-clipped, producing spectral regrowth and nonlinear distortion. The default RX frontend config represents settled AGC by adc_clip_dbfs and adc_full_scale_dbm; it does not model AGC dynamics.
Validation Targets¶
Analytic implementations should be validated against mature references rather than trusted by inspection:
MATLAB Communications Toolbox / RF Blockset for IQ imbalance, phase noise, RF impairment chains, and converter sanity checks.
GNU Radio HW Impairments for flowgraph-level hardware impairment behavior.
HermesPy RF chain models when evaluating or using a HermesPy backend.
Sionna AWGN for thermal-noise realization at the LNA inside
Group.RX_CAPTUREfrom the RX frontend noise figure.
References¶
Friis, H. T. Noise Figures of Radio Receivers, Proc. IRE, 1944.
IEEE Std 1241-2010 IEEE Standard for Terminology and Test Methods for Analog-to-Digital Converters.
IEEE Std 145-2013 IEEE Standard for Definitions of Terms for Antennas.
Leeson, D. B. A Simple Model of Feedback Oscillator Noise Spectrum, Proc. IEEE, 1966.
Nyquist, H. Thermal Agitation of Electric Charge in Conductors, Phys. Rev., 1928.
Razavi, B. RF Microelectronics, 2nd ed., Prentice Hall, 2011.
Pozar, D. M. Microwave Engineering, 4th ed., Wiley, 2011.
3GPP TS 38.101-1. NR; User Equipment (UE) radio transmission and reception; Part 1: Range 1 Standalone. https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3283
MathWorks. Visualize RF Impairments. https://www.mathworks.com/help/comm/ug/visualize-rf-impairments.html
GNU Radio. HW Impairments. https://wiki.gnuradio.org/index.php/HW_Impairments
HermesPy RF chain API. https://hermespy.org/api/simulation/rf/chain.html