RF Frontend Models

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 receiver-side transformations (those for which Transformation.is_receiver is true, on the receiver’s capture and hardware planes) apply these models after the per-RX sum. 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

rfgen’s core-only post-sum RX frontend is nine ordered transformations:

RX LO frequency error -> intended RX mixer -> IF filter -> resampler
-> LNA noise -> ADC -> RX phase noise -> RX IQ imbalance -> digital AGC

They map to enum values 30–34 and 41–44; together with five TX slots and one propagation slot, Transformation has 15 slots. LOFrequencyErrorStage models a constant receiver oscillator offset in Hz before MixerStage performs only the intended carrier-to-receiver-centre conversion. The separate operations commute as complex rotations but have different physical provenance. See primary RX frontend validation for the exact executable order and evidence. TorchSig benchmark augmentation is not an RX channel stage, and rfgen provides no Sionna RX fallback.

Noise Figure

The first amplifier in the receive chain dominates total noise figure when its gain is sufficient. Friis’ cascade formula is:

\[F_{\text{total}} = F_1 + \frac{F_2 - 1}{G_1} + \frac{F_3 - 1}{G_1 G_2} + \cdots + \frac{F_n - 1}{G_1 G_2 \cdots G_{n-1}}\]

where \(F_i\) and \(G_i\) are linear noise factor and linear gain for stage \(i\) [1]. Converted to dB:

\[NF_{\text{total},\,dB} = 10 \log_{10}(F_{\text{total}})\]

For ThermalNoiseStage, the receiver noise figure feeds the post-sum thermal noise calculation:

\[P_{n,\,dBm} = -174 + 10 \log_{10}(B_{Hz}) + NF_{dB}\]

at the IEEE reference temperature \(T_0 = 290\) K [3]. The implementation uses B = ctx.rx_params.bandwidth_hz, not the sample rate, and records effective bandwidth, effective noise power, per-real-component sigma, and floor status in provenance. It models one equivalent receiver noise figure, not a Friis cascade; see RX capture.

Phase Noise

The local oscillator mixes the RF signal to or from baseband. Phase noise multiplies onto the complex signal as

\[y(t) = x(t) e^{j\theta(t)}\]

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:

\[y = \alpha x + \beta x^*\]

with

\[\alpha = \frac{1 + g\, e^{-j\phi}}{2}, \quad \beta = \frac{1 - g\, e^{-j\phi}}{2}\]

The conjugate term \(\beta x^*\) is the image at the mirror frequency. Its strength relative to the desired signal is the image rejection ratio:

\[\text{IRR}_{dB} = 10 \log_{10}\!\left(\frac{|\alpha|^2}{|\beta|^2}\right)\]

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:

\[\text{SNR}_{q,\,dB} = 6.02 N + 1.76 \text{ dB}\]

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:

\[\text{ENOB} = \frac{\text{SINAD}_{dB} - 1.76}{6.02}\]

per IEEE Std 1241 [2].

Inputs exceeding full scale are hard-clipped, producing spectral regrowth and nonlinear distortion. The supported AGC is digital and post-ADC: it updates gain sample by sample using separate attack and decay time constants, then applies saturation. An analog pre-ADC VGA is outside this model.

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.

  • The primary RX frontend validation and its linked component reports for the shipped physical models and their operating boundaries.

References

  1. Friis, H. T. Noise Figures of Radio Receivers, Proc. IRE, 1944.

  2. IEEE Std 1241-2010 IEEE Standard for Terminology and Test Methods for Analog-to-Digital Converters.

  3. IEEE Std 145-2013 IEEE Standard for Definitions of Terms for Antennas.

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

  5. Nyquist, H. Thermal Agitation of Electric Charge in Conductors, Phys. Rev., 1928.

  6. Razavi, B. RF Microelectronics, 2nd ed., Prentice Hall, 2011.

  7. Pozar, D. M. Microwave Engineering, 4th ed., Wiley, 2011.

  8. 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

  9. MathWorks. Visualize RF Impairments. https://www.mathworks.com/help/comm/ug/visualize-rf-impairments.html

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

  11. HermesPy RF chain API. https://hermespy.org/api/simulation/rf/chain.html