Source code for NuRadioReco.utilities.signal_processing

import numpy as np
from scipy.signal.windows import hann


[docs]def half_hann_window(length, half_percent=None, hann_window_length=None): """ Produce a half-Hann window. This is the Hann window from SciPY with ones inserted in the middle to make the window `length` long. Note that this is different from a Hamming window. Parameters ---------- length : int The desired total length of the window half_percent : float, default=None The percentage of `length` at the beginning **and** end that should correspond to half of the Hann window hann_window_length : int, default=None The length of the half the Hann window. If `half_percent` is set, this value will be overwritten by it. """ if half_percent is not None: hann_window_length = int(length * half_percent) elif hann_window_length is None: raise ValueError("Either half_percent or half_window_length should be set!") hann_window = hann(2 * hann_window_length) half_hann_widow = np.ones(length, dtype=np.double) half_hann_widow[:hann_window_length] = hann_window[:hann_window_length] half_hann_widow[-hann_window_length:] = hann_window[hann_window_length:] return half_hann_widow