kaira.channels.PoissonChannel

Inheritance diagram of PoissonChannel

Inheritance diagram for PoissonChannel

class kaira.channels.PoissonChannel(rate_factor: float = 1.0, normalize: bool = False, *args: Any, **kwargs: Any)[source]

Bases: BaseChannel

Channel with signal-dependent Poisson noise.

Models a channel where the output follows a Poisson distribution with mean proportional to the input. This is commonly used to model photon counting systems and optical communication channels [Middleton, 1977].

Mathematical Model:

y ~ Poisson(λ·|x|)

Parameters:
  • rate_factor (float) – Scaling factor λ for the Poisson rate.

  • normalize (bool) – Whether to normalize output back to input scale.

Example

>>> # Create a Poisson channel with rate_factor=0.1
>>> channel = PoissonChannel(rate_factor=0.1)
>>> x = torch.ones(10, 1)
>>> y = channel(x)  # Output with Poisson noise

Methods

__init__

Initialize the Poisson channel.

forward

Apply Poisson channel to the input signal.

get_config

Get a dictionary of the channel's configuration.

Attributes

rate_factor

__init__(rate_factor: float = 1.0, normalize: bool = False, *args: Any, **kwargs: Any)[source]

Initialize the Poisson channel.

Parameters:
  • rate_factor (float) – Scaling factor λ for the Poisson rate.

  • normalize (bool) – Whether to normalize output back to input scale.

  • *args – Variable length argument list passed to the base class.

  • **kwargs – Arbitrary keyword arguments passed to the base class.

rate_factor: float
forward(x: Tensor, *args: Any, **kwargs: Any) Tensor[source]

Apply Poisson channel to the input signal.

Parameters:
  • x (torch.Tensor) – The input tensor (must be non-negative if real, or will use magnitude if complex)

  • *args – Additional positional arguments (unused).

  • **kwargs – Additional keyword arguments (unused).

Returns:

The output tensor following Poisson distribution

Return type:

torch.Tensor

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]