torchsig.transforms.impairments.Impairments

class torchsig.transforms.impairments.Impairments(all_levels_signal_transforms: List[SignalTransform], all_levels_dataset_transforms: List[DatasetTransform], level: int, **kwargs)[source]

Bases: Transform

Applies signal and dataset transformations at specific impairment levels.

This class applies a set of signal and dataset transforms based on a given impairment level. The impairment level must be between 0 and 2, where each level corresponds to different sets of transformations for signals and datasets. * Level 0: Perfect * Level 1: Cabled enviornment * Level 2: Wireless environment

Parameters:
  • all_levels_signal_transforms (List[SignalTransform]) – A list of signal transformations for all impairment levels.

  • all_levels_dataset_transforms (List[DatasetTransform]) – A list of dataset transformations for all impairment levels.

  • level (int) – The impairment level (must be between 0 and 2).

  • **kwargs – Additional keyword arguments passed to the parent class Transform.

Raises:

ValueError – If the provided impairment level is outside the valid range (0, 1, 2).

level

The specified impairment level.

Type:

int

signal_transforms

The composed signal transformations corresponding to the given impairment level.

Type:

Compose

dataset_transforms

The composed dataset transformations corresponding to the given impairment level.

Type:

Compose

Methods

add_parent

Add parent Seedable object and set up RNGs accordingly

get_distribution

get_second_seed

Gets second seed, usually used to seed both torch and numpy generators with slightly different seeds

seed

Seed number generators with given seed.

setup_rngs

Initialize torch and numpy number generators, and update its children.

update

Update bookeeping for signals

update_from_parent

Update numpy and torch number generators with parent seed

__init__(all_levels_signal_transforms: List[SignalTransform], all_levels_dataset_transforms: List[DatasetTransform], level: int, **kwargs)[source]

Transform initialization as Seedable.

__call__(signal: Signal | DatasetSignal) Signal | DatasetSignal

Performs transforms

Parameters:

signal (Any) – Signal to be transformed.

Raises:

NotImplementedError – Inherited classes must override this method.

Returns:

Transformed Signal.

Return type:

Any

__repr__() str

Transform string representation. Should be able to recreate class from this string.

Returns:

Transform representation.

Return type:

str

__str__() str

Return str(self).

add_parent(parent) None

Add parent Seedable object and set up RNGs accordingly

get_second_seed(seed: int) int

Gets second seed, usually used to seed both torch and numpy generators with slightly different seeds

Parameters:

seed (int) – Seed to use.

Returns:

New seed.

Return type:

int

seed(seed: int) None

Seed number generators with given seed.

Parameters:

seed (int) – Seed to use.

setup_rngs() None

Initialize torch and numpy number generators, and update its children.

update(signal: Signal | DatasetSignal) None

Update bookeeping for signals

Parameters:

signal (Signal | DatasetSignal) – signal to update metadata.

Raises:

NotImplementedError – Inherited classes must override this method.

update_from_parent() None

Update numpy and torch number generators with parent seed