torchsig.transforms.transforms.Fading¶
- class torchsig.transforms.transforms.Fading(coherence_bandwidth=(0.01, 0.1), power_delay_profile: tuple | list | ndarray = (1, 1), **kwargs)[source]¶
Bases:
SignalTransformApply a channel fading model to signal.
- Note, currently only performs Rayleigh fading:
A Rayleigh fading channel can be modeled as an FIR filter with Gaussian distributed taps which vary over time. The length of the filter determines the coherence bandwidth of the channel and is inversely proportional to the delay spread. The rate at which the channel taps vary over time is related to the coherence time and this is inversely proportional to the maximum Doppler spread. This time variance is not included in this model.
- coherence_bandwidth¶
Coherence bandwidth sampling parameters. Defaults to (0.01, 0.1).
- coherence_bandwidth_distribution¶
Random draw from coherence bandwidth distribution.
- power_delay_profile¶
A list of positive values assigning power to taps of the channel model. When the number of taps exceeds the number of items in the provided power_delay_profile, the list is linearly interpolated to provide values for each tap of the channel. Defaults to (1, 1).
Methods
Add parent Seedable object and set up RNGs accordingly.
Create distribution function with proper seeding.
Gets second seed, usually used to seed both torch and numpy generators with slightly different seeds.
Seed number generators with given seed.
Initialize torch and numpy number generators, and update its children.
Update numpy and torch number generators with parent seed.
- __init__(coherence_bandwidth=(0.01, 0.1), power_delay_profile: tuple | list | ndarray = (1, 1), **kwargs)[source]¶
Initialize the Fading transform.
- Parameters:
coherence_bandwidth – Coherence bandwidth sampling parameters. Defaults to (0.01, 0.1).
power_delay_profile – A list of positive values assigning power to taps of the channel model. Defaults to (1, 1).
**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: