Choose a channel chain

Warning

Pre-implementation. Commands describe the target config surface.

Select the channel transformations that match the fidelity and compatibility needs of your dataset.

When to use this

Use this when changing between four common fidelity tiers:

Choice

Use it for

What changes

Additive white Gaussian noise (AWGN)-only smoke test

Fast shape, label, and storage checks

Disables fading and most hardware effects; receiver low-noise-amplifier (LNA) noise sets the white-noise floor.

TorchSig-compatible benchmark

Matching radio-frequency machine-learning (RFML) benchmark assumptions

Uses TorchSig-compatible impairment settings where the current channel contract has matching transformation slots.

Sionna statistical propagation

Non-geometric wireless channel variation

Delegates path loss, multipath, shadowing, and Doppler to Sionna, NVIDIA’s physical-layer simulation library, without a 3D scene asset.

Site-specific ray tracing

Location-specific propagation

Uses Sionna ray tracing (RT) with a geometry asset so buildings, materials, and antenna placement affect paths.

Prerequisites

Read Concepts / Channels for the four-group, fourteen-transformation chain order. Transmit (TX) impairments and channel propagation are pre-sum: they run on each emitted component before receiver streams are combined. Receive (RX) capture and RX hardware are post-sum: they run once per receiver after in-band components are selected and summed.

YAML examples below use the current ChannelChainConfig shape. pre_sum and post_sum entries are plugin registry names plus params; the framework builds ChannelPipeline instances with ChainKind.PRE_SUM and ChainKind.POST_SUM from those lists.

Minimal command path

AWGN-only smoke test. There is no standalone AWGN channel stage in the current contract; white receiver noise is owned by the LNA-noise transformation in Group.RX_CAPTURE.

channel:
  pre_sum:
    - name: identity_channel
      params: {}
  post_sum:
    - name: rx_mixer
      params: {}
    - name: if_filter
      params: {}
    - name: resampler
      params: {}
    - name: lna_noise
      params:
        nf_db: 0.0
    - name: adc_quantization
      params:
        enob: 16.0

TorchSig-compatible benchmark. TorchSig is the external RFML benchmark library; this preset uses registry entries that map TorchSig-style impairment settings onto the explicit rfgen transformation slots.

channel:
  pre_sum:
    - name: torchsig_dac_quantization
      params:
        level: 2
    - name: torchsig_pa_nonlinearity
      params:
        level: 2
    - name: torchsig_tx_phase_noise
      params:
        level: 2
    - name: torchsig_tx_iq_imbalance
      params:
        level: 2
    - name: torchsig_cfo
      params:
        level: 2
    - name: identity_channel
      params: {}
  post_sum:
    - name: rx_mixer
      params: {}
    - name: if_filter
      params: {}
    - name: resampler
      params: {}
    - name: lna_noise
      params:
        nf_db: 5.0
    - name: adc_quantization
      params:
        enob: 10.0

Sionna statistical propagation:

channel:
  pre_sum:
    - name: cfo
      params:
        f_offset_hz: 250.0
    - name: sionna_umi
      params:
        carrier_frequency_hz: 3.5e9
        direction: uplink
  post_sum:
    - name: rx_mixer
      params: {}
    - name: if_filter
      params: {}
    - name: resampler
      params: {}
    - name: lna_noise
      params:
        nf_db: 3.0
    - name: adc_quantization
      params:
        enob: 12.0
    - name: agc
      params: {}

Site-specific ray tracing. This requires a geometry asset on the scene config; see Scene Geometry § Available Scene Sources. max_depth is the Sionna RT path-depth limit for reflected, diffracted, or scattered paths.

channel:
  pre_sum:
    - name: cfo
      params:
        f_offset_hz: 250.0
    - name: sionna_rt
      params:
        scene_xml: assets/sionna/munich.xml
        max_depth: 3
  post_sum:
    - name: rx_mixer
      params: {}
    - name: if_filter
      params: {}
    - name: resampler
      params: {}
    - name: lna_noise
      params:
        nf_db: 3.0
    - name: adc_quantization
      params:
        enob: 12.0
    - name: agc
      params: {}

Verify

Save the selected block as a Hydra channel config, for example configs/channel/my_channel.yaml. The command below selects that config group entry and a wideband scenario preset.

rfgen validate scene=wideband channel=my_channel
rfgen inspect ./out/run summary --field channel

Check the realized channel profile, SNR distribution, and whether geometry is present only when the propagation backend requires it.

Troubleshoot

Symptom

Fix

Chain validation fails

Keep Group.TX and Group.CHANNEL entries in pre_sum; keep Group.RX_CAPTURE and Group.RX_HARDWARE entries in post_sum.

Transformation ordering fails

Order entries by their Transformation values: TX impairments, channel propagation, RX capture, then RX hardware.

Ray tracing complains about geometry

Add a geometry block with a scene asset, or switch to a Sionna statistical backend.

SNR does not match expectation

Check the sampled power/SNR target, propagation backend, LNA noise figure, and ADC settings.

Next steps