Source code for torchsig.transforms.impairments

"""Dataset Transform/Impairment base class
"""

# TorchSig
from torchsig.transforms.base_transforms import Compose, Transform
from torchsig.transforms.signal_transforms import SignalTransform
from torchsig.transforms.dataset_transforms import DatasetTransform

# Built-In
from typing import List

[docs] class Impairments(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 Args: 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). Attributes: level (int): The specified impairment level. signal_transforms (Compose): The composed signal transformations corresponding to the given impairment level. dataset_transforms (Compose): The composed dataset transformations corresponding to the given impairment level. """
[docs] def __init__( self, all_levels_signal_transforms: List[SignalTransform], all_levels_dataset_transforms: List[DatasetTransform], level: int, **kwargs ): super().__init__(**kwargs) self.level = level self.signal_transforms = Compose(transforms = all_levels_signal_transforms[self.level]) self.signal_transforms.add_parent(self) self.dataset_transforms = Compose(transforms = all_levels_dataset_transforms[self.level]) self.dataset_transforms.add_parent(self)