aspcol.soundfieldestimation.krr_stationary_mics_regularized

aspcol.soundfieldestimation.krr_stationary_mics_regularized(ir_mic, pos_mic, pos_eval, samplerate, c, reg_param, kernel_func, kernel_args, reg_kernel_func, reg_kernel_args, verbose=False, max_cond=None, data_weighting=None)

Estimates the impulse responses at the evaluation points using kernel ridge regression.

Uses a regularization defined by a linear operator.

Parameters:
  • ir_mic (np.ndarray of shape (num_mics, ir_len)) – The impulse responses measure at the microphones.

  • pos_mic (np.ndarray of shape (num_mics, 3)) – The position of the microphones.

  • pos_eval (np.ndarray of shape (num_eval, 3)) – The position of the evaluation points.

  • c (float) – The speed of sound.

  • reg_param (float) – The regularization parameter

  • kernel_func (function) – The kernel function defined by the function space and the regularization specifically (R* R) Gamma(r, r’) The function should have the signature kernel_func(pos1, pos2, wave_num, *args) and return a kernel matrix which is a np.ndarray of shape (num_points1, num_points2, num_real_freqs, num_real_freqs). See documentation in kernel.py for more information.

  • kernel_args (list) – Additional arguments to the kernel function.

  • reg_kernel_func (function) – The kernel function defined by the function space and the regularization, specifically (R* R)^3 Gamma(r, r’). Format is the same as kernel_func.

  • reg_kernel_args (list) – Additional arguments to the reg_kernel_func.

  • verbose (bool) – If True, returns additional metadata and intermediate results.

  • data_weighting (np.ndarray of shape (ir_len,) or (num_mics, ir_len)) – The data term in the optimization problem will be the l2 norm weighted by this vector (the matrix constructed from this vector on the diagonal). All values should be positive.

  • freq_weighting (np.ndarray of shape (num_real_freqs,)) – The frequency weighting of the regularization term. If None, no frequency weighting is applied.

Returns:

ir_eval – The estimated impulse responses at the evaluation points.

Return type:

np.ndarray of shape (num_eval, ir_len)