torchsig.transforms.signal_transforms.Fading¶
- class torchsig.transforms.signal_transforms.Fading(coherence_bandwidth=(0.01, 0.1), power_delay_profile: Tuple | List | ndarray = (1, 1), **kwargs)[source]¶
Bases:
SignalTransformSignalTransform that applies a channel fading model.
- 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).
- Type:
optional
- coherence_bandwidth_distribution¶
Random draw from coherence bandwidth distribution.
- Type:
Callable[[], float]
- 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).
- Type:
Tuple | List | np.ndarray, optional
Methods
Add parent Seedable object and set up RNGs accordingly
get_distributionGets 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.
Updates bookkeeping to transforms in Signal's SignalMetadata and checks signal valididty.
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]¶
Transform initialization as Seedable.
- __call__(signal: Signal) Signal[source]¶
Performs transforms.
- Parameters:
signal (Signal) – Signal to be transformed.
- Raises:
NotImplementedError – Inherited classes must override this method.
- Returns:
Transformed Signal.
- Return type:
- __repr__() str¶
Transform string representation. Should be able to recreate class from this string.
- Returns:
Transform representation.
- Return type:
- get_second_seed(seed: int) int¶
Gets second seed, usually used to seed both torch and numpy generators with slightly different seeds