Source code for sionna.channel.channel_model

#
# SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
"""Abstract class proving an interface for channel models"""

from abc import ABC, abstractmethod

[docs]class ChannelModel(ABC): # pylint: disable=line-too-long r"""ChannelModel() Abstract class that defines an interface for channel models. Any channel model which generates channel impulse responses must implement this interface. All the channel models available in Sionna, such as :class:`~sionna.channel.RayleighBlockFading` or :class:`~sionna.channel.tr38901.TDL`, implement this interface. *Remark:* Some channel models only require a subset of the input parameters. Input ----- batch_size : int Batch size num_time_steps : int Number of time steps sampling_frequency : float Sampling frequency [Hz] Output ------- a : [batch size, num_rx, num_rx_ant, num_tx, num_tx_ant, num_paths, num_time_steps], tf.complex Path coefficients tau : [batch size, num_rx, num_tx, num_paths], tf.float Path delays [s] """ @abstractmethod def __call__(self, batch_size, num_time_steps, sampling_frequency): return NotImplemented