torchsig.transforms.transforms.CochannelInterference

class torchsig.transforms.transforms.CochannelInterference(power_range: tuple = (0.01, 10.0), filter_weights: ndarray | None = None, color: str = 'white', continuous: bool = True, **kwargs)[source]

Bases: SignalTransform

Apply cochannel interference to signal.

This transform adds interference that shares the same channel as the signal.

power_range

Range bounds for interference power level (W). Default (0.01, 10.0).

power_distribution

Random draw of interference power.

filter_weights

Predefined baseband lowpass filter, fixed for all calls. Default low_pass(0.125, 0.125, 1.0).

noise_color

Base noise color, supports ‘white’, ‘pink’, or ‘red’ noise frequency spectrum types. Default ‘white’.

continuous

Sets noise to continuous (True) or impulsive (False). Default True.

precise

Measure and update SNR metadata. Default to False.

Methods

add_parent

Add parent Seedable object and set up RNGs accordingly.

get_distribution

Create distribution function with proper seeding.

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_from_parent

Update numpy and torch number generators with parent seed.

__init__(power_range: tuple = (0.01, 10.0), filter_weights: ndarray | None = None, color: str = 'white', continuous: bool = True, **kwargs)[source]

Initialize the CochannelInterference transform.

Parameters:
  • power_range – Range bounds for interference power level (W). Default (0.01, 10.0).

  • filter_weights – Predefined baseband lowpass filter, fixed for all calls. Default low_pass(0.125, 0.125, 1.0).

  • color – Base noise color, supports ‘white’, ‘pink’, or ‘red’ noise frequency spectrum types. Default ‘white’.

  • continuous – Sets noise to continuous (True) or impulsive (False). Default True.

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

__call__(signal: Signal) Signal

Validates signal, performs transform, updates bookeeping, (optionally) enforces data type.

Parameters:

signal – Signal to be transformed.

Returns:

Transformed signal.

__repr__() str

Transform string representation.

Should be able to recreate class from this string.

Returns:

Transform representation.

__str__() str

String representation of the transform.

Returns:

String representation of the transform.

add_parent(parent: Seedable, register: bool = True) None

Add parent Seedable object and set up RNGs accordingly.

Parameters:
  • parent – Parent Seedable object to add.

  • register – If True (default), add self to parent.children so that future seed propagation reaches this object. Pass False for transient objects (e.g. per-sample Signal instances) that only need the parent link for metadata/RNG access during their lifetime but must not accumulate in the parent’s child list, which would otherwise cause unbounded memory growth.

get_distribution(params: list | tuple | float, scaling: str = 'linear') Distribution

Create distribution function with proper seeding.

Parameters:
  • params – Parameters for distribution.

  • scaling – Scaling param for distribution. Defaults to ‘linear’.

Returns:

Distribution function, seeded.

Return type:

Distribution

get_second_seed(seed: int) int

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

Parameters:

seed – Seed to use.

Returns:

New seed.

seed(seed: int) None

Seed number generators with given seed.

Parameters:

seed – Seed to use.

setup_rngs() None

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

update_from_parent() None

Update numpy and torch number generators with parent seed.