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