kaira.channels.RayleighFadingChannel

Inheritance diagram for RayleighFadingChannel
- class kaira.channels.RayleighFadingChannel(coherence_time=1, avg_noise_power: float | None = None, snr_db: float | None = None, *args: Any, **kwargs: Any)[source]
Bases:
FlatFadingChannelSpecialized channel for Rayleigh fading in wireless communications.
This is a convenience class that creates a FlatFadingChannel with the fading_type set to “rayleigh” to model Rayleigh fading, which is common in non-line-of-sight wireless propagation environments.
- Mathematical Model:
y[i] = h[⌊i/L⌋] * x[i] + n[i] where L is the coherence length, h follows a Rayleigh distribution, and n ~ CN(0,σ²)
- Parameters:
Example
>>> # Create a Rayleigh fading channel with coherence time of 10 samples >>> channel = RayleighFadingChannel(coherence_time=10, snr_db=15) >>> x = torch.complex(torch.ones(100), torch.zeros(100)) >>> y = channel(x) # Output with Rayleigh fading
Methods
Initialize the Rayleigh Fading channel.
Apply flat fading and noise to the input signal.
Get a dictionary of the channel's configuration.
Attributes
- forward(x: Tensor, *args: Any, csi=None, noise=None, **kwargs: Any) Tensor
Apply flat fading and noise to the input signal.
- Parameters:
x (torch.Tensor) – The input tensor.
*args – Additional positional arguments (unused).
csi (Optional[torch.Tensor]) – Pre-computed channel state information (fading coefficients). If provided, these coefficients are used instead of generating new ones.
noise (Optional[torch.Tensor]) – Pre-generated noise tensor. If provided, this noise is added.
**kwargs – Additional keyword arguments (unused).
- Returns:
The output tensor after applying fading and noise.
- Return type:
- get_config() Dict[str, Any]
Get a dictionary of the channel’s configuration.
This method returns a dictionary containing the channel’s parameters, which can be used to recreate the channel instance.
- Returns:
Dictionary of parameter names and values
- Return type:
Dict[str, Any]
- __init__(coherence_time=1, avg_noise_power: float | None = None, snr_db: float | None = None, *args: Any, **kwargs: Any)[source]
Initialize the Rayleigh Fading channel.
- Parameters:
coherence_time (int, optional) – Samples over which fading is constant. Defaults to 1.
avg_noise_power (float, optional) – Average noise power σ².
snr_db (float, optional) – SNR in dB (alternative to avg_noise_power).
*args – Variable length argument list passed to the base class.
**kwargs – Arbitrary keyword arguments passed to the base class.