ChannelCoefficientsGenerator#
- class sionna.phy.channel.tr38901.ChannelCoefficientsGenerator(carrier_frequency: float, tx_array, rx_array, subclustering: bool, precision: str | None = None, device: str | None = None)[source]#
Bases:
sionna.phy.object.ObjectSample channel impulse responses according to LSPs rays
This class implements steps 10 and 11 from the TR 38.901 specifications, (section 7.5).
- Parameters:
carrier_frequency (float) – Carrier frequency [Hz]
tx_array – Array used by the transmitters. All transmitters share the same antenna array configuration.
rx_array – Panel array used by the receivers. All receivers share the same antenna array configuration.
subclustering (bool) – Use subclustering if set to True (see step 11 for section 7.5 in TR 38.901). CDL does not use subclustering. System level models (UMa, UMi, RMa) do.
precision (str | None) – Precision used for internal calculations and outputs. If set to None,
precisionis used.device (str | None) – Device for computation (e.g.,
"cpu","cuda:0"). If None,deviceis used.
- Inputs:
num_time_samples – int. Number of samples.
sampling_frequency – float. Sampling frequency [Hz].
k_factor – [batch_size, number of TX, number of RX], torch.float. K-factor.
rays –
Rays. Rays from which to compute the CIR.topology –
Topology. Topology of the network.c_ds – [batch size, number of TX, number of RX], torch.float. Cluster DS [ns]. Only needed when subclustering is used (
subclusteringset to True), i.e., with system level models. Otherwise can be set to None. Defaults to None.debug – bool. If set to True, additional information is returned in addition to paths coefficients and delays: The random phase shifts (see step 10 of section 7.5 in TR38.901 specification), and the time steps at which the channel is sampled.
- Outputs:
h – [batch size, num TX, num RX, num paths, num RX antenna, num TX antenna, num samples], torch.complex. Paths coefficients.
delays – [batch size, num TX, num RX, num paths], torch.float. Paths delays [s].
phi – [batch size, number of base stations, number of UTs, 4], torch.float. Initial phases (see step 10 of section 7.5 in TR 38.901 specification). Last dimension corresponds to the four polarization combinations.
sample_times – [number of time steps], torch.float. Sampling time steps.
Examples
# Create the generator cir_gen = ChannelCoefficientsGenerator( carrier_frequency=3.5e9, tx_array=tx_array, rx_array=rx_array, subclustering=False, ) # Generate channel impulse responses h, delays = cir_gen( num_time_samples=100, sampling_frequency=1e6, k_factor=k_factor, rays=rays, topology=topology, )