Channel Propagation

Scientific validation

The available AWGN propagation model has a scientific validation report: AWGN channel propagation. It covers AWGN’s controlled additive-noise contract, operating envelope, and limitations; it does not qualify the optional Sionna backends.

Channel propagation is Group 2 of the four-group channel pipeline. It models what happens while a transmitter’s signal travels to a receiver: the signal weakens with distance, reaches the receiver through reflected paths, changes with motion, and may be blocked or attenuated by the local environment.

Sionna is rfgen’s canonical physical-propagation direction; select an rfgen[sionna] backend for statistical or ray-traced propagation. The current geometry-free runtime still uses pure-torch AWGNChannel unless a Sionna backend is selected explicitly. AWGN is a lightweight controlled-noise baseline, not the recommended physical model. rfgen exposes one pluggable propagation slot according to scene.channel_application.

Overview

Name

Transformation

ABC

Current available backends

Channel propagation

PROPAGATION in Group.CHANNEL

BaseChannelPropagation

AWGNChannel baseline; selected rfgen[sionna] backends SionnaRT, SionnaCDL, SionnaTDL, SionnaUMa, SionnaUMi, SionnaRMa

The transformation enum entry is PROPAGATION = 21; its Group.CHANNEL tag places it between TX and RX capture. See Channels overview § Pipeline overview for the full numbering, group, and sample-rate map.

The slot is one plugin position. Pick one backend per scene, meaning one generated rfgen example made from one or more emitters and receivers. You do not stack two propagation backends in one channel-propagation chain. TorchSig is not an alternative propagation backend; it remains at explicit emitter, data-interop, and optional benchmark boundaries.

Why one slot

Sionna’s channel model classes compute the propagation effects as one coupled model call from a single set of inputs: TX/RX positions, velocities, antenna patterns, and carrier frequency. In this page, those effects are:

  • Path loss: signal weakening with distance and carrier frequency.

  • Shadow fading: slower attenuation from obstacles or local environment effects.

  • Multipath: copies of the signal arriving over reflected or scattered paths with different delays.

  • Doppler: frequency shift or channel variation from motion.

Splitting those effects across separate pipeline slots would require rfgen to decompose and recompose Sionna’s internal state, adding complexity and risk without benefit. The one-slot design delegates the propagation computation entirely to Sionna.

Source: Sionna’s TR 38.901 UMa implementation documents topology inputs, carrier frequency, optional path loss, optional shadow fading, and path-coefficient / delay outputs in one channel model call; the TDL and CDL implementations likewise expose profile-level path coefficients and delays under the 3GPP TR 38.901 model family. The underlying standard is ETSI TR 138 901 / 3GPP TR 38.901, and the local validation tables are collected in Reference / TR 38.901 propagation tables.

Sample Rate and Carrier Frame

Channel propagation operates at R_channel = SceneConfig.sample_rate_hz. The composer requests that rate from emitters and applies TX impairments; a plugin that returns another R_emitter is resampled to R_channel before frequency placement and propagation. Baseband IQ means complex-valued in-phase/quadrature samples centered at 0 Hz.

After placement, the channel object receives R_channel baseband IQ tagged with the composer-written absolute realized_carrier_hz. Sionna uses that carrier for carrier-dependent effects such as path-loss scaling and Doppler. The output remains baseband IQ; the RX mixer in RX capture performs the later translation into the receiver frequency frame.

Source: Sionna’s TR 38.901 models take carrier_frequency and sampling_frequency as explicit call inputs and return path coefficients plus path delays rather than frequency-shifted passband samples. rfgen’s carrier-frame handoff is documented in Coordinate Systems § Frame Transitions.

Current Execution Model

scene.channel_application selects per-emitter/RX propagation or, for a backend that supports it, one call on a summed receiver buffer. Configure every Sionna scenario with per_emitter: RT is forced to that path because it requires geometry, while the statistical Sionna backends reach apply() without a TX pose and raise when configured as scene. The current runtime does not fail fast for that incompatible statistical selection.

RX capture and RX hardware always run once per summed receiver buffer. The complete dispatch and known limitations are documented in the Scene Composition Algorithm.

Default Backend Selection

Choose the backend by scenario type. 3rd Generation Partnership Project (3GPP) is the cellular-standards consortium whose TR 38.901 report defines the UMa, UMi, RMa, TDL, and CDL channel-model families used below.

Need

Backend

Outdoor cellular in a city center, 3GPP Urban Macro (UMa)

SionnaUMa

Outdoor cellular on a residential street or street canyon, 3GPP Urban Micro (UMi)

SionnaUMi

Rural or suburban cellular, 3GPP Rural Macro (RMa)

SionnaRMa

Controlled single-link fading profile, 3GPP tapped-delay-line (TDL) or clustered-delay-line (CDL)

SionnaTDL or SionnaCDL

A specific indoor or outdoor geometry with known materials and ray paths

SionnaRT

The statistical scenario backends (SionnaUMa, SionnaUMi, SionnaRMa) cover large-scale effects, such as path loss, shadow fading, and line-of-sight (LOS) or non-line-of-sight (NLOS) state, plus small-scale effects such as multipath and Doppler. They are the canonical physical-propagation route when configured explicitly; the current AWGN runtime baseline does not silently change to them.

Source: Sionna’s official UMa, UMi, and RMa modules identify these as 3GPP TR 38.901 system-level channel models, with topology setup, carrier-frequency input, path-loss and shadow-fading switches, and path coefficient / delay outputs. 3GPP TR 38.901 covers the urban macro, urban micro street-canyon, and rural macro scenario procedures in the channel model for 0.5-100 GHz.

SionnaTDL and SionnaCDL cover small-scale fading at profile level. They do not provide complete scenario path loss on their own; use them for controlled link-level ablation studies, not full deployment datasets.

Source: Sionna’s TDL and CDL modules document tapped-delay-line and clustered-delay-line models from 3GPP TR 38.901. The TDL implementation notes normalized power delay profiles, sum-of-sinusoids coefficient generation, mobility aging, and single-link operation; this is why rfgen treats TDL/CDL as profile-level fading backends rather than full scene scenario models.

SionnaRT wraps Sionna RT. Use it when geometry matters, such as urban canyons, indoor environments, vehicle-to-everything (V2X) intersections, reconfigurable intelligent surface (RIS) studies, or any scenario where a statistical population model is not sufficiently specific.

Source: Sionna RT’s official documentation describes the package as a differentiable ray tracer for radio propagation modeling, with scene, path, radio-map, material, and antenna-pattern APIs. The Sionna RT technical report documents the algorithms used for channel impulse responses and radio maps.

TX and RX Antenna Patterns

Sionna backends receive antenna-array configuration through their solver configuration, not arbitrary emitter/receiver record metadata. Statistical backends construct their arrays from StatisticalSolverConfig.ut_array and bs_array; Sionna RT uses RTSolverConfig arrays and optional antenna-pattern assets. rfgen does not apply antenna patterns as a separate transformation. Current propagation output is limited to one IQ stream per receiver: a multi-antenna output is rejected rather than silently selecting one antenna.

Source: Sionna’s TR 38.901 examples construct PanelArray objects with 38.901 or omnidirectional antenna patterns before instantiating UMa, and Sionna RT exposes antenna-pattern and antenna-array APIs as part of the propagation scene. rfgen therefore passes solver configuration into the Sionna backend rather than modeling antenna gain as a separate channel transformation.

Multi-TX / Multi-RX Semantics

In the intended per_emitter path, each emitter/receiver call retains its own TX/RX context, propagation metadata, delay/spread state, and received waveform before the sum at RX capture. A backend that supports scene mode instead sees the summed receiver buffer by design.

Each (emitter, receiver) pair gets its own channel realization because path loss, multipath, and Doppler depend on the physical geometry of that pair. A vectorized Sionna call over many TX/RX pairs is an optimization; the semantic contract remains per-pair.

Minimal Example

Select a backend and include it in the pre-sum chain:

from rfgen.core.pipeline import ChannelPipeline
from rfgen.engine.propagation_sionna import SionnaUMi
from rfgen.engine.propagation_sionna_rt import SionnaRT
from rfgen.hardware.tx import (
    LeesonTXPhaseNoise,
    LinearCFO,
    LinearDACQuantizer,
    RappPA,
    LinearTXIQImbalance,
)

pre_sum = ChannelPipeline([
    LinearDACQuantizer(enob_bits=14),
    RappPA(),
    LeesonTXPhaseNoise(),
    LinearTXIQImbalance(),
    LinearCFO(f_offset_hz=250.0),
    SionnaUMi(),  # channel-propagation slot; carrier/topology come from scene config and ChannelContext
])

Site-specific alternative:

from rfgen.core.pipeline import ChannelPipeline
from rfgen.engine.propagation_sionna_rt import SionnaRT
from rfgen.hardware.tx import (
    LeesonTXPhaseNoise,
    LinearCFO,
    LinearDACQuantizer,
    RappPA,
    LinearTXIQImbalance,
)

pre_sum = ChannelPipeline([
    LinearDACQuantizer(enob_bits=14),
    RappPA(),
    LeesonTXPhaseNoise(),
    LinearTXIQImbalance(),
    LinearCFO(f_offset_hz=250.0),
    SionnaRT(),  # scene assets and RTSolverConfig supply the RT scene and solver knobs
])

See Channels overview for the full pipeline including RX capture and RX hardware.

Design Notes

rfgen is a thin integration layer over Sionna for Group 2; the propagation physics lives in Sionna. rfgen owns the integration layer: converting scene metadata into Sionna topology calls, invoking Sionna deterministically, mapping Sionna outputs back to BaseChannel records, and keeping rfgen config names stable across Sionna API versions.

References

Channel propagation delegates RF propagation to Sionna and 3GPP TR 38.901 instead of implementing propagation formulas in rfgen. The citations below duplicate the inline sources for readers who want the bibliography in one place.

  1. ETSI TR 138 901 V16.1.0, 5G; Study on channel model for frequencies from 0.5 to 100 GHz (3GPP TR 38.901 Release 16). https://www.etsi.org/deliver/etsi_tr/138900_138999/138901/16.01.00_60/tr_138901v160100p.pdf

  2. NVIDIA Sionna. sionna.phy.channel.tr38901.UMa. https://nvlabs.github.io/sionna/_modules/sionna/phy/channel/tr38901/uma.html

  3. NVIDIA Sionna. sionna.phy.channel.tr38901.UMi. https://nvlabs.github.io/sionna/_modules/sionna/phy/channel/tr38901/umi.html

  4. NVIDIA Sionna. sionna.phy.channel.tr38901.RMa. https://nvlabs.github.io/sionna/_modules/sionna/phy/channel/tr38901/rma.html

  5. NVIDIA Sionna. sionna.phy.channel.tr38901.TDL. https://nvlabs.github.io/sionna/_modules/sionna/phy/channel/tr38901/tdl.html

  6. NVIDIA Sionna. sionna.phy.channel.tr38901.CDL. https://nvlabs.github.io/sionna/_modules/sionna/phy/channel/tr38901/cdl.html

  7. NVIDIA Sionna. Ray Tracing (RT). https://nvlabs.github.io/sionna/rt/index.html

  8. NVIDIA Research. Sionna RT: Technical Report. https://research.nvidia.com/publication/2025-04_sionna-rt-technical-report

See Also