kaira.channels.PhaseNoiseChannel

Inheritance diagram of PhaseNoiseChannel

Inheritance diagram for PhaseNoiseChannel

class kaira.channels.PhaseNoiseChannel(phase_noise_std: float, *args: Any, **kwargs: Any)[source]

Bases: BaseChannel

Channel that introduces random phase noise.

Models a channel where the phase of the signal is perturbed by random noise, which is common in oscillator circuits and synchronization [Demir et al., 2000].

Mathematical Model:

y = x * exp(j·θ) where θ ~ N(0, σ²) is the phase noise

Parameters:

phase_noise_std (float) – Standard deviation of phase noise in radians.

Methods

__init__

Initialize the Phase Noise channel.

forward

Apply phase noise to the input signal.

get_config

Get a dictionary of the channel's configuration.

Attributes

phase_noise_std

__init__(phase_noise_std: float, *args: Any, **kwargs: Any)[source]

Initialize the Phase Noise channel.

Parameters:
  • phase_noise_std (float) – Standard deviation of phase noise in radians.

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

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

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

Apply phase noise to the input signal.

Parameters:
  • x (torch.Tensor) – The input tensor (must be complex).

  • *args – Additional positional arguments (unused).

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

Returns:

The output tensor with phase noise applied.

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]