def get_window(window, frame_length, periodic=True):
''' Cached version of scipy.signal.get_window '''
# Funtion
if hasattr(window, '__call__'):
return window(frame_length)
# Window name or scalar
elif (isinstance(window, (six.string_types, tuple)) or
np.isscalar(window)):
return signal.get_window(window, frame_length, fftbins=periodic)
# Predefined-array
elif isinstance(window, (np.ndarray, list)):
if len(window) == frame_length:
return np.asarray(window)
raise ValueError('Window size mismatch: '
'{:d} != {:d}'.format(len(window), frame_length))
# Unknown
else:
raise ValueError('Invalid window specification: %s' % str(window))
# ===========================================================================
# Array utils
# ===========================================================================
评论列表
文章目录