place_interrupt
place_interrupt¶
Location: signal/response_signals.py
Description¶
place_interrupt is a utility function that determines a valid placement for an interrupt within a signal. The interrupt duration is defined as a fraction of the total signal length. The function ensures that interruptions are placed correctly, either avoiding overlaps with existing occupied intervals (when non_overlap=True) or allowing random placement.
This function is useful for scheduling perturbations in signals where controlled disruptions are required for testing, simulation, or augmentation.
Parameters¶
- signal_length (
int): The total length of the signal (in samples). - duration_ratio (
float): The fraction of the signal length that the interrupt should occupy. - occupied_intervals (
listoftuple): List of(start_idx, end_idx)pairs representing already occupied intervals. - non_overlap (
bool, optional): IfTrue, ensures the interrupt does not overlap with existing intervals (default:True). - buffer (
int, optional): Minimum separation between interruptions whennon_overlap=True(default:1).
Returns¶
tuple((start_idx, end_idx)) if a valid placement is found.Noneif no valid placement is possible.
Usage Example¶
import SigVarGen as svg
# Define occupied intervals
occupied_intervals = [(100, 200), (300, 400)]
# Attempt to place an interrupt in a signal of length 1000, occupying 5% of the signal
interrupt_interval = svg.place_interrupt(1000, duration_ratio=0.05, occupied_intervals=occupied_intervals)
print("Placed Interrupt:", interrupt_interval) # Example output: (500, 550)