# Window functions¶

In digital signal processing, windowing functions are useful to counteract the assumption made by the FFT that data is infinite and to reduce spectral leakage.

## blackman_harris¶

numpy_ml.utils.windows.blackman_harris(window_len, symmetric=False)[source]

The Blackman-Harris window.

Notes

The Blackman-Harris window is an instance of the more general class of cosine-sum windows where K=3. Additional coefficients extend the Hamming window to further minimize the magnitude of the nearest side-lobe in the frequency response.

$\text{bh}(n) = a_0 - a_1 \cos\left(\frac{2 \pi n}{N}\right) + a_2 \cos\left(\frac{4 \pi n }{N}\right) - a_3 \cos\left(\frac{6 \pi n}{N}\right)$

where N = window_len - 1, $$a_0$$ = 0.35875, $$a_1$$ = 0.48829, $$a_2$$ = 0.14128, and $$a_3$$ = 0.01168.

Parameters: window_len (int) – The length of the window in samples. Should be equal to the frame_width if applying to a windowed signal. symmetric (bool) – If False, create a ‘periodic’ window that can be used in with an FFT / in spectral analysis. If True, generate a symmetric window that can be used in, e.g., filter design. Default is False. window (ndarray of shape (window_len,)) – The window

## generalized_cosine¶

numpy_ml.utils.windows.generalized_cosine(window_len, coefs, symmetric=False)[source]

The generalized cosine family of window functions.

Notes

The generalized cosine window is a simple weighted sum of cosine terms.

For $$n \in \{0, \ldots, \text{window_len} \}$$:

$\text{GCW}(n) = \sum_{k=0}^K (-1)^k a_k \cos\left(\frac{2 \pi k n}{\text{window_len}}\right)$
Parameters: window_len (int) – The length of the window in samples. Should be equal to the frame_width if applying to a windowed signal. coefs (list of floats) – The $$a_k$$ coefficient values symmetric (bool) – If False, create a ‘periodic’ window that can be used in with an FFT / in spectral analysis. If True, generate a symmetric window that can be used in, e.g., filter design. Default is False. window (ndarray of shape (window_len,)) – The window

## hamming¶

numpy_ml.utils.windows.hamming(window_len, symmetric=False)[source]

The Hamming window.

Notes

The Hamming window is an instance of the more general class of cosine-sum windows where K=1 and $$a_0 = 0.54$$. Coefficients selected to minimize the magnitude of the nearest side-lobe in the frequency response.

$\text{hamming}(n) = 0.54 - 0.46 \cos\left(\frac{2 \pi n}{\text{window_len} - 1}\right)$
Parameters: window_len (int) – The length of the window in samples. Should be equal to the frame_width if applying to a windowed signal. symmetric (bool) – If False, create a ‘periodic’ window that can be used in with an FFT / in spectral analysis. If True, generate a symmetric window that can be used in, e.g., filter design. Default is False. window (ndarray of shape (window_len,)) – The window

## hann¶

numpy_ml.utils.windows.hann(window_len, symmetric=False)[source]

The Hann window.

Notes

The Hann window is an instance of the more general class of cosine-sum windows where K=1 and $$a_0$$ = 0.5. Unlike the Hamming window, the end points of the Hann window touch zero.

$\text{hann}(n) = 0.5 - 0.5 \cos\left(\frac{2 \pi n}{\text{window_len} - 1}\right)$
Parameters: window_len (int) – The length of the window in samples. Should be equal to the frame_width if applying to a windowed signal. symmetric (bool) – If False, create a ‘periodic’ window that can be used in with an FFT / in spectral analysis. If True, generate a symmetric window that can be used in, e.g., filter design. Default is False. window (ndarray of shape (window_len,)) – The window