docs: def _pad(X):
      """ add zeroes on the border to make sure the signal length is a
      power of two """
      p_above = int(np.floor(np.log2(X.shape[1])))
      M = 2 ** (p_above + 1) - X.shape[1]
      X = np.hstack((np.zeros((X.shape[0], M)), X))
  
      return X, M