Sionna
  • Quickstart
    • Installation
      • Installation using pip
      • Docker-based Installation
      • Installation from source
    • “Hello, world!”
  • Discover Sionna
    • Load Required Packages
    • Sionna Data-flow and Design Paradigms
    • Let’s Get Started - The First Layers (Eager Mode)
    • Batches and Multi-dimensional Tensors
    • First Link-level Simulation
    • Setting up the End-to-end Model
    • Run some Throughput Tests (Graph Mode)
    • Bit-Error Rate (BER) Monte-Carlo Simulations
    • Conclusion
  • Tutorials
    • For Beginners
      • Part 1: Getting Started with Sionna
        • Imports & Basics
        • Sionna Data-flow and Design Paradigms
        • Hello, Sionna!
        • Communication Systems as Keras Models
        • Forward Error Correction (FEC)
        • Eager vs Graph Mode
        • Exercise
      • Part 2: Differentiable Communication Systems
        • Imports
        • Gradient Computation Through End-to-end Systems
        • Creating Custom Layers
        • Setting up Training Loops
      • Part 3: Advanced Link-level Simulations
        • Imports
        • OFDM Resource Grid and Stream Management
          • Stream Management
          • OFDM Resource Grid
        • Antenna Arrays
        • Channel Model
        • Uplink Transmission in the Frequency Domain
      • Part 4: Toward Learned Receivers
        • Imports
        • Simulation Parameters
        • Implemention of an Advanced Neural Receiver
        • Training the Neural Receiver
        • Benchmarking the Neural Receiver
        • Conclusion
        • References
      • Basic MIMO Simulations
        • Table of Contents
          • GPU Configuration and Imports
        • Simple uncoded transmission
          • Adding spatial correlation
        • Extension to channel coding
          • BER simulations using a Keras model
      • Pulse-shaping Basics
        • Table of Contents
        • GPU Configuration and Imports
        • Pulse-shaping of a sequence of QAM symbols
        • Recovering the QAM symbols through matched filtering and downsampling
        • Investigating the ACLR
        • Windowing
      • Optical Channel with Lumped Amplification
        • Table of Contents
        • Setup
        • Impulse Generation
        • Attenuation
        • Amplified Spontaneous Emission Noise
          • Channel Configuration
          • Transmission
        • Chromatic Dispersion
          • Channel Configuration
          • Transmission
        • Kerr Nonlinearity
          • Channel configuration
          • Transmission
        • Split-Step Fourier Method
          • Channel Configuration
          • Transmission
        • References
    • For Experts
      • 5G Channel Coding and Rate-Matching: Polar vs. LDPC Codes
        • Table of Contents
        • GPU Configuration and Imports
        • BER Performance of 5G Coding Schemes
          • Performance under Optimal Decoding
          • Performance of Longer LDPC Codes
        • A Deeper Look into the Polar Code Module
        • Rate-Matching and Rate-Recovery
        • Throughput and Decoding Complexity
        • References
      • 5G NR PUSCH Tutorial
        • Table of Contents
        • GPU Configuration and Imports
        • A Hello World Example
        • Carrier Configuration
        • Understanding the DMRS Configuration
          • Configuring Multiple Layers
          • Controlling the Number of DMRS Symbols in a Slot
          • How to control the number of available DMRS ports?
        • Transport Blocks and MCS
        • Looking into the PUSCHTransmitter
        • Components of the PUSCHReceiver
        • End-to-end PUSCH Simulations
      • Bit-Interleaved Coded Modulation (BICM)
        • Table of Contents
        • System Block Diagram
        • GPU Configuration and Imports
        • A Simple BICM System
          • Constellations and Bit-Channels
          • Simple BER Simulations
        • All-zero Codeword Simulations
          • Remove Encoder: Simulate QPSK with All-zero Codeword Transmission
          • Remove (De-)Mapping: Approximate the LLR Distribution of the All-zero Codeword (and BPSK/QPSK)
          • The Role of the Scrambler
        • EXIT Charts
        • Mismatched Demapping and the Advantages of Min-sum Decoding
        • References
      • MIMO OFDM Transmissions over the CDL Channel Model
        • Table of Contents
          • GPU Configuration and Imports
        • System Setup
          • Stream Management
          • OFDM Resource Grid & Pilot Pattern
          • Antenna Arrays
          • CDL Channel Model
          • Other Physical Layer Components
        • Simulations
          • Uplink Transmission in the Frequency Domain
          • Uplink Transmission in the Time Domain
          • Downlink Transmission in the Frequency Domain
          • Understand the Difference Between the CDL Models
          • Create an End-to-End Keras Model
          • Compare Uplink Performance Over the Different CDL Models
          • Compare Downlink Performance Over the Different CDL Models
          • Evaluate the Impact of Mobility
          • Evaluate the Impact of Insufficient Cyclic Prefix Length
      • Neural Receiver for OFDM SIMO Systems
        • GPU Configuration and Imports
        • Simulation Parameters
        • Neural Receiver
        • End-to-end System
        • End-to-end System as a Keras Model
        • Evaluation of the Baselines
        • Training the Neural Receiver
        • Evaluation of the Neural Receiver
        • Pre-computed Results
        • References
      • Realistic Multiuser MIMO OFDM Simulations
        • Table of Contents
        • GPU Configuration and Imports
        • System Setup
        • Uplink Transmissions in the Frequency Domain
          • Compare Estimated and Actual Frequency Responses
          • Understand the Difference Between the Channel Models
          • Setup a Keras Model for BER simulations
      • OFDM MIMO Channel Estimation and Detection
        • Table of Contents
        • GPU Configuration and Imports
        • Simulation parameters
        • Estimation of the channel time, frequency, and spatial covariance matrices
        • Loading the channel covariance matrices
        • Comparison of OFDM estimators
          • End-to-end model
        • Comparison of MIMO detectors
          • End-to-end model
      • Introduction to Iterative Detection and Decoding
        • Iterative Detection and Decoding
        • Table of contents
        • GPU Configuration and Imports
        • Simulation Parameters
        • Setting-up the Keras Models
        • Non-IDD versus IDD Benchmarks
        • Discussion-Optimizing IDD with Machine Learning
        • Comments
        • List of References
      • End-to-end Learning with Autoencoders
        • GPU Configuration and Imports
        • Simulation Parameters
        • Neural Demapper
        • Trainable End-to-end System: Conventional Training
        • Trainable End-to-end System: RL-based Training
        • Evaluation
        • Visualizing the Learned Constellations
        • References
      • Weighted Belief Propagation Decoding
        • Table of Contents
        • GPU Configuration and Imports
        • Weighted BP for BCH Codes
          • Weights before Training and Simulation of BER
          • Training
          • Results
        • Further Experiments
          • Damped BP
          • Learning the 5G LDPC Code
        • References
      • Channel Models from Datasets
        • GPU Configuration and Imports
        • Simulation Parameters
        • Creating a Simple Dataset
        • Generators
        • Use the Channel Model for OFDM Transmissions
      • Using the DeepMIMO Dataset with Sionna
        • Table of Contents
        • GPU Configuration and Imports
        • Configuration of DeepMIMO
          • Visualization of the dataset
        • Using DeepMIMO with Sionna
          • Random Sampling of Multi-User Channels
        • Link-level Simulations using Sionna and DeepMIMO
        • DeepMIMO License and Citation
    • Ray Tracing
      • Introduction to Sionna RT
        • Table of Contents
        • Background Information
        • GPU Configuration and Imports
        • Loading Scenes
        • Ray Tracing for Radio Propagation
        • From Paths to Channel Impulse Responses
        • BER Evaluation
        • Runtime vs Depth
        • Coverage Map
        • Site-specifc Link-Level Simulations
        • Conclusion and Outlook
      • Tutorial on Diffraction
        • Table of Contents
        • Background Information
        • GPU Configuration and Imports
        • Experiments with a Simple Wedge
        • Coverage Maps with Diffraction
        • References
      • Tutorial on Scattering
        • Table of Contents
        • GPU Configuration and Imports
        • Scattering Basics
        • Scattering Patterns
        • Validation Against the “Far”-Wall Approximation
        • Coverage Maps With Scattering
        • Impact on Channel Impulse Response
        • Summary
        • References
  • “Made with Sionna”
    • List of Projects
      • Sionna RT: Differentiable Ray Tracing for Radio Propagation Modeling
      • DUIDD: Deep-Unfolded Interleaved Detection and Decoding for MIMO Wireless Systems
      • Bit Error and Block Error Rate Training for ML-Assisted Communication
      • GNNs for Channel Decoding
      • DL-based Synchronization of NB-IoT
  • Primer on Electromagnetics
    • Coordinate system, rotations, and vector fields
    • Planar Time-Harmonic Waves
    • Far Field of a Transmitting Antenna
    • Modelling of a Receiving Antenna
    • General Propagation Path
    • Frequency & Impulse Response
    • Reflection and Refraction
    • Diffraction
    • Scattering
  • API Documentation
    • Forward Error Correction (FEC)
      • Linear Codes
        • Encoder
          • LinearEncoder
          • AllZeroEncoder
        • Decoder
          • OSDecoder
      • Low-Density Parity-Check (LDPC)
        • LDPC Encoder
          • LDPC5GEncoder
        • LDPC Decoder
          • LDPCBPDecoder
          • LDPC5GDecoder
      • Polar Codes
        • Polar Encoding
          • Polar5GEncoder
          • PolarEncoder
        • Polar Decoding
          • Polar5GDecoder
          • PolarSCDecoder
          • PolarSCLDecoder
          • PolarBPDecoder
        • Polar Utility Functions
          • generate_5g_ranking
          • generate_polar_transform_mat
          • generate_rm_code
          • generate_dense_polar
      • Convolutional Codes
        • Convolutional Encoding
        • Viterbi Decoding
        • BCJR Decoding
        • Convolutional Code Utility Functions
          • Trellis
          • polynomial_selector
      • Turbo Codes
        • Turbo Encoding
        • Turbo Decoding
        • Turbo Utility Functions
          • TurboTermination
          • polynomial_selector
          • puncture_pattern
      • Cyclic Redundancy Check (CRC)
        • CRCEncoder
        • CRCDecoder
      • Interleaving
        • Interleaver
          • RowColumnInterleaver
          • RandomInterleaver
          • Turbo3GPPInterleaver
        • Deinterleaver
      • Scrambling
        • Scrambler
        • TB5GScrambler
        • Descrambler
      • Utility Functions
        • (Binary) Linear Codes
          • load_parity_check_examples
          • alist2mat
          • load_alist
          • generate_reg_ldpc
          • make_systematic
          • gm2pcm
          • pcm2gm
          • verify_gm_pcm
        • EXIT Analysis
          • plot_exit_chart
          • get_exit_analytic
          • plot_trajectory
        • Miscellaneous
          • GaussianPriorSource
          • bin2int
          • int2bin
          • bin2int_tf
          • int2bin_tf
          • int_mod_2
          • llr2mi
          • j_fun
          • j_fun_inv
          • j_fun_tf
          • j_fun_inv_tf
    • Mapping
      • Constellations
        • Constellation
        • qam
        • pam
        • pam_gray
      • Mapper
      • Demapping
        • Demapper
        • DemapperWithPrior
        • SymbolDemapper
        • SymbolDemapperWithPrior
      • Utility Functions
        • SymbolLogits2LLRs
        • LLRs2SymbolLogits
        • SymbolLogits2LLRsWithPrior
        • SymbolLogits2Moments
        • SymbolInds2Bits
        • PAM2QAM
        • QAM2PAM
    • Channel
      • Wireless
        • AWGN
        • Flat-fading channel
          • FlatFadingChannel
          • GenerateFlatFadingChannel
          • ApplyFlatFadingChannel
          • SpatialCorrelation
          • KroneckerModel
          • PerColumnModel
        • Channel model interface
        • Time domain channel
          • TimeChannel
          • GenerateTimeChannel
          • ApplyTimeChannel
          • cir_to_time_channel
          • time_to_ofdm_channel
        • Channel with OFDM waveform
          • OFDMChannel
          • GenerateOFDMChannel
          • ApplyOFDMChannel
          • cir_to_ofdm_channel
        • Rayleigh block fading
        • 3GPP 38.901 channel models
          • PanelArray
          • Antenna
          • AntennaArray
          • Tapped delay line (TDL)
          • Clustered delay line (CDL)
          • Urban microcell (UMi)
          • Urban macrocell (UMa)
          • Rural macrocell (RMa)
        • External datasets
        • Utility functions
          • subcarrier_frequencies
          • time_lag_discrete_time_channel
          • deg_2_rad
          • rad_2_deg
          • wrap_angle_0_360
          • drop_uts_in_sector
          • relocate_uts
          • set_3gpp_scenario_parameters
          • gen_single_sector_topology
          • gen_single_sector_topology_interferers
          • exp_corr_mat
          • one_ring_corr_mat
      • Optical
        • Split-step Fourier method
        • Erbium-doped fiber amplifier
        • Utility functions
          • time_frequency_vector
      • Discrete
        • BinaryMemorylessChannel
        • BinarySymmetricChannel
        • BinaryErasureChannel
        • BinaryZChannel
    • Orthogonal Frequency-Division Multiplexing (OFDM)
      • Resource Grid
        • ResourceGrid
        • ResourceGridMapper
        • ResourceGridDemapper
        • RemoveNulledSubcarriers
      • Modulation & Demodulation
        • OFDMModulator
        • OFDMDemodulator
      • Pilot Pattern
        • PilotPattern
        • EmptyPilotPattern
        • KroneckerPilotPattern
      • Channel Estimation
        • BaseChannelEstimator
        • BaseChannelInterpolator
        • LSChannelEstimator
        • LinearInterpolator
        • LMMSEInterpolator
        • NearestNeighborInterpolator
        • tdl_time_cov_mat
        • tdl_freq_cov_mat
      • Precoding
        • ZFPrecoder
      • Equalization
        • OFDMEqualizer
        • LMMSEEqualizer
        • MFEqualizer
        • ZFEqualizer
      • Detection
        • OFDMDetector
        • OFDMDetectorWithPrior
        • EPDetector
        • KBestDetector
        • LinearDetector
        • MaximumLikelihoodDetector
        • MaximumLikelihoodDetectorWithPrior
        • MMSEPICDetector
    • Multiple-Input Multiple-Output (MIMO)
      • Stream Management
      • Precoding
        • zero_forcing_precoder
      • Equalization
        • lmmse_equalizer
        • mf_equalizer
        • zf_equalizer
      • Detection
        • EPDetector
        • KBestDetector
        • LinearDetector
        • MaximumLikelihoodDetector
        • MaximumLikelihoodDetectorWithPrior
        • MMSE-PIC
      • Utility Functions
        • List2LLR
        • List2LLRSimple
        • complex2real_vector
        • real2complex_vector
        • complex2real_matrix
        • real2complex_matrix
        • complex2real_covariance
        • real2complex_covariance
        • complex2real_channel
        • real2complex_channel
        • whiten_channel
    • 5G NR
      • Carrier
        • CarrierConfig
      • Layer Mapping
        • LayerMapper
        • LayerDemapper
      • PUSCH
        • PUSCHConfig
        • PUSCHDMRSConfig
        • PUSCHLSChannelEstimator
        • PUSCHPilotPattern
        • PUSCHPrecoder
        • PUSCHReceiver
        • PUSCHTransmitter
      • Transport Block
        • TBConfig
        • TBEncoder
        • TBDecoder
      • Utils
        • calculate_tb_size
        • generate_prng_seq
        • select_mcs
    • Ray Tracing
      • Scene
        • Scene
        • compute_paths
        • coverage_map
        • load_scene
        • preview
        • render
        • render_to_file
      • Example Scenes
        • floor_wall
        • simple_street_canyon
        • etoile
        • munich
        • simple_wedge
        • simple_reflector
        • double_reflector
        • triple_reflector
        • Box
      • Paths
        • Paths
      • Coverage Maps
        • CoverageMap
        • as_tensor
        • sample_positions
        • show
      • Cameras
        • Camera
      • Scene Objects
        • SceneObject
      • Radio Materials
        • RadioMaterial
        • ScatteringPattern
      • Radio Devices
        • Transmitter
        • Receiver
      • Antenna Arrays
        • AntennaArray
        • PlanarArray
      • Antennas
        • Antenna
        • compute_gain
        • visualize
        • dipole_pattern
        • hw_dipole_pattern
        • iso_pattern
        • tr38901_pattern
        • polarization_model_1
        • polarization_model_2
      • Utility Functions
        • cross
        • dot
        • normalize
        • phi_hat
        • rotate
        • rotation_matrix
        • rot_mat_from_unit_vecs
        • r_hat
        • sample_points_on_hemisphere
        • theta_hat
        • theta_phi_from_unit_vec
    • Signal
      • Filters
        • SincFilter
        • RaisedCosineFilter
        • RootRaisedCosineFilter
        • CustomFilter
        • Filter
      • Window functions
        • HannWindow
        • HammingWindow
        • BlackmanWindow
        • CustomWindow
        • Window
      • Utility Functions
        • convolve
        • fft
        • ifft
        • Upsampling
        • Downsampling
        • empirical_psd
        • empirical_aclr
    • Utility Functions
      • Metrics
        • BitErrorRate
        • BitwiseMutualInformation
        • compute_ber
        • compute_bler
        • compute_ser
        • count_errors
        • count_block_errors
      • Tensors
        • expand_to_rank
        • flatten_dims
        • flatten_last_dims
        • insert_dims
        • split_dims
        • matrix_sqrt
        • matrix_sqrt_inv
        • matrix_inv
        • matrix_pinv
      • Miscellaneous
        • BinarySource
        • SymbolSource
        • QAMSource
        • PAMSource
        • PlotBER
        • sim_ber
        • ebnodb2no
        • hard_decisions
        • plot_ber
        • complex_normal
        • log2
        • log10
    • Configuration
  • Discussions
  • Report an Issue
Sionna
  • »
  • API Documentation »
  • Channel

Channel

This module provides layers and functions that implement channel models for wireless and optical communications.

  • Wireless
    • AWGN
    • Flat-fading channel
      • FlatFadingChannel
      • GenerateFlatFadingChannel
      • ApplyFlatFadingChannel
      • SpatialCorrelation
      • KroneckerModel
      • PerColumnModel
    • Channel model interface
    • Time domain channel
      • TimeChannel
      • GenerateTimeChannel
      • ApplyTimeChannel
      • cir_to_time_channel
      • time_to_ofdm_channel
    • Channel with OFDM waveform
      • OFDMChannel
      • GenerateOFDMChannel
      • ApplyOFDMChannel
      • cir_to_ofdm_channel
    • Rayleigh block fading
    • 3GPP 38.901 channel models
      • PanelArray
      • Antenna
      • AntennaArray
      • Tapped delay line (TDL)
      • Clustered delay line (CDL)
      • Urban microcell (UMi)
      • Urban macrocell (UMa)
      • Rural macrocell (RMa)
    • External datasets
    • Utility functions
      • subcarrier_frequencies
      • time_lag_discrete_time_channel
      • deg_2_rad
      • rad_2_deg
      • wrap_angle_0_360
      • drop_uts_in_sector
      • relocate_uts
      • set_3gpp_scenario_parameters
      • gen_single_sector_topology
      • gen_single_sector_topology_interferers
      • exp_corr_mat
      • one_ring_corr_mat
  • Optical
    • Split-step Fourier method
    • Erbium-doped fiber amplifier
    • Utility functions
      • time_frequency_vector
  • Discrete
    • BinaryMemorylessChannel
    • BinarySymmetricChannel
    • BinaryErasureChannel
    • BinaryZChannel
Previous Next

© Copyright 2021-2023 NVIDIA CORPORATION.

Built with Sphinx using a theme provided by Read the Docs.