Features
Ray Tracing
- Add support for scattering:
- Paths: Only for the last interaction, i.e., transmitter -> N >= 0 reflections -> 1 scattering -> receiver
- Coverage map: Support for paths with arbitrary number of reflections and scattering interactions, in arbitrary order
- Enrich radio materials with scattering coefficients that control the power distribution between scattered and reflected rays
- Add support for Lambertian, directive, and backscattering patterns
- (Paths only) Randomly remove some scattered paths controlled by the `scat_keep_prob` parameter to avoid an overwhelming number of paths
- Add support for first-order diffraction, i.e., transmitter -> wedge -> receiver (paths and coverage map)
- **(Breaking change)** Replace uniform random sampling of initial ray directions with a Fibonacci lattice
- Remove `seed` parameter of `Scene.compute_paths()` and `Scene.coverage_map()`
- **(Breaking change)** New definition of the coverage map
- **(Breaking change)** `Scene.compute_paths()` now returns paths coefficients instead of transition matrices
- Remove `Paths2CIR` layer: Channel impulse responses can be obtained through the `Paths.cir()` method
- Applying Doppler shift can now be done through the `Paths.apply_doppler()` method
- Add support for the 3GPP TR38901 polarization Model-1
- Add flags for enabling/disabling paths types in `Scene.compute_paths()`, `Scene.coverage_map()` and `Paths.cir()`
- Add flags for disabling check of the scene prior to computing paths of coverage maps
- New scenes
- `simple_wedge`: A wedge with a 90 degrees opening angle
- `simple_reflector`: A metallic square
- `double_reflector`: Two metallic squares
- `triple_reflector`: Three metallic rectangles
- `box`: A metallic box
- Fix (128)
FEC
- Enhanced MCS support for `TBConfig` and `LDPC5GEncoder` (146, 147)
- Add support for downlink in `Polar5GEncoder` and `Polar5GDecoder` (PR 84)
- Add feature to return CRC status in `PolarSCLDecoder` (134)
- Numerical improvements in `PolarSCLDecoder`
Channel models
- Add discrete channel models:
- `BinaryMemorylessChannel`
- `BinarySymmetricChannel`
- `BinaryErasureChannel`
- `BinaryZChannel`
- Fix (115)
Tutorials
- Add [dedicated section for ray tracing tutorials](https://nvlabs.github.io/sionna/tutorials.html#ray-tracing)
- Add tutorials on [diffraction](https://nvlabs.github.io/sionna/examples/Sionna_Ray_Tracing_Diffraction.html) and [scattering](https://nvlabs.github.io/sionna/examples/Sionna_Ray_Tracing_Scattering.html)
- Update the "[Primer on Electromagnetics](https://nvlabs.github.io/sionna/em_primer.html)" with sections on diffraction and scattering
Other
- Switch the docker images from Jupyter to JupterLab