Utilities

pyroomacoustics.adaptive.util.autocorr(x)

Fast autocorrelation computation using the FFT

pyroomacoustics.adaptive.util.hankel_multiplication(c, r, A, mkl=True, **kwargs)

Compute numpy.dot(scipy.linalg.hankel(c,r=r), A) using the FFT.

Parameters:
  • c (ndarray) – the first column of the Hankel matrix
  • r (ndarray) – the last row of the Hankel matrix
  • A (ndarray) – the matrix to multiply on the right
  • mkl (bool, optional) – if True, use the mkl_fft package if available
pyroomacoustics.adaptive.util.hankel_stride_trick(x, shape)

Make a Hankel matrix from a vector using stride tricks

Parameters:
  • x (ndarray) – a vector that contains the concatenation of the first column and first row of the Hankel matrix to build without repetition of the lower left corner value of the matrix
  • shape (tuple) – the shape of the Hankel matrix to build, it must satisfy x.shape[0] == shape[0] + shape[1] - 1
pyroomacoustics.adaptive.util.mkl_toeplitz_multiplication(c, r, A, A_padded=False, out=None, fft_len=None)

Compute numpy.dot(scipy.linalg.toeplitz(c,r), A) using the FFT from the mkl_fft package.

Parameters:
  • c (ndarray) – the first column of the Toeplitz matrix
  • r (ndarray) – the first row of the Toeplitz matrix
  • A (ndarray) – the matrix to multiply on the right
  • A_padded (bool, optional) – the A matrix can be pre-padded with zeros by the user, if this is the case set to True
  • out (ndarray, optional) – an ndarray to store the output of the multiplication
  • fft_len (int, optional) – specify the length of the FFT to use
pyroomacoustics.adaptive.util.naive_toeplitz_multiplication(c, r, A)

Compute numpy.dot(scipy.linalg.toeplitz(c,r), A)

Parameters:
  • c (ndarray) – the first column of the Toeplitz matrix
  • r (ndarray) – the first row of the Toeplitz matrix
  • A (ndarray) – the matrix to multiply on the right
pyroomacoustics.adaptive.util.toeplitz_multiplication(c, r, A, **kwargs)

Compute numpy.dot(scipy.linalg.toeplitz(c,r), A) using the FFT.

Parameters:
  • c (ndarray) – the first column of the Toeplitz matrix
  • r (ndarray) – the first row of the Toeplitz matrix
  • A (ndarray) – the matrix to multiply on the right
pyroomacoustics.adaptive.util.toeplitz_opt_circ_approx(r, matrix=False)

Optimal circulant approximation of a symmetric Toeplitz matrix by Tony F. Chan

Parameters:
  • r (ndarray) – the first row of the symmetric Toeplitz matrix
  • matrix (bool, optional) – if True, the full symetric Toeplitz matrix is returned, otherwise, only the first column
pyroomacoustics.adaptive.util.toeplitz_strang_circ_approx(r, matrix=False)

Circulant approximation to a symetric Toeplitz matrix by Gil Strang

Parameters:
  • r (ndarray) – the first row of the symmetric Toeplitz matrix
  • matrix (bool, optional) – if True, the full symetric Toeplitz matrix is returned, otherwise, only the first column