def calc_start_end(noise_len:float, data_len:float, step_size:float)->list:
    """
    returns a list of tuples of the start and end times
    that specify the data_len window moving across noise_len
    with a step specified by step_size
    """
    start_end = list()
    noise_start = 0.0
    noise_end = noise_start + data_len
    while (noise_end < noise_len):
        start_end.append( (noise_start, noise_end))
        noise_start += step_size
        noise_end = noise_start + data_len
    return start_end