kaira.constraints.PeakAmplitudeConstraint

Inheritance diagram of PeakAmplitudeConstraint

Inheritance diagram for PeakAmplitudeConstraint

class kaira.constraints.PeakAmplitudeConstraint(max_amplitude: float, *args, **kwargs)[source]

Bases: BaseConstraint

Enforces maximum signal amplitude by clipping values that exceed threshold.

Limits the maximum amplitude of the signal to prevent clipping in digital-to-analog converters (DACs) and power amplifiers. This constraint applies a hard clipping operation to ensure signal values remain within the specified bounds. Peak amplitude constraints are critical for practical communication systems as discussed in [Armstrong, 2002] and [Jiang and Wu, 2008].

max_amplitude

Maximum allowed amplitude value

Type:

float

Methods

__init__

Initialize the peak amplitude constraint.

forward

Apply peak amplitude constraint.

get_dimensions

Helper method to get all dimensions except batch for calculating norms/means.

Examples using kaira.constraints.PeakAmplitudeConstraint

Composing Constraints for Complex Signal Requirements

Composing Constraints for Complex Signal Requirements

Practical Applications of Constraints in Wireless Communication Systems

Practical Applications of Constraints in Wireless Communication Systems
__init__(max_amplitude: float, *args, **kwargs) None[source]

Initialize the peak amplitude constraint.

Parameters:
  • max_amplitude (float) – Maximum allowed amplitude. Signal values exceeding this threshold (positive or negative) will be clipped.

  • *args – Variable length argument list.

  • **kwargs – Arbitrary keyword arguments.

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

Apply peak amplitude constraint.

Clips the input signal to ensure all values fall within the range [-max_amplitude, max_amplitude].

Parameters:
  • x (torch.Tensor) – Input tensor of any shape

  • *args – Variable length argument list.

  • **kwargs – Arbitrary keyword arguments.

Returns:

Amplitude-constrained signal with the same shape as input

Return type:

torch.Tensor

static get_dimensions(x: Tensor, exclude_batch: bool = True) Tuple[int, ...]

Helper method to get all dimensions except batch for calculating norms/means.

Utility function to generate dimension indices for reduction operations like mean or norm. Typically used to calculate signal properties across all dimensions except the batch dimension.

Parameters:
  • x (torch.Tensor) – Input tensor

  • exclude_batch (bool, optional) – Whether to exclude the batch dimension (first dimension). Defaults to True.

Returns:

Dimensions to use for reduction operations (e.g., mean, norm)

Return type:

Tuple[int, …]

Example

>>> x = torch.randn(32, 4, 128)  # [batch, antennas, time]
>>> dims = BaseConstraint.get_dimensions(x)
>>> # dims will be (1, 2) for summing across antennas and time