Recursive Least Squares

Recursive Least Squares Family

Implementations of adaptive filters from the RLS class. These algorithms typically have a higher computational complexity, but a faster convergence.

class pyroomacoustics.adaptive.rls.BlockRLS(length, lmbd=0.999, delta=10, dtype=<MagicMock id='140583672708560'>, L=None)

Bases: RLS

Block implementation of the recursive least-squares (RLS) algorithm. The difference with the vanilla implementation is that chunks of the input signals are processed in batch and some savings can be made there.

Parameters
  • length (int) – the length of the filter

  • lmbd (float, optional) – the exponential forgetting factor (default 0.999)

  • delta (float, optional) – the regularization term (default 10)

  • dtype (numpy type) – the bit depth of the numpy arrays to use (default np.float32)

  • L (int, optional) – the block size (default to length)

reset()

Reset the state of the adaptive filter

update(x_n, d_n)

Updates the adaptive filter with a new sample

Parameters
  • x_n (float) – the new input sample

  • d_n (float) – the new noisy reference signal

class pyroomacoustics.adaptive.rls.RLS(length, lmbd=0.999, delta=10, dtype=<MagicMock id='140583672758032'>)

Bases: AdaptiveFilter

Implementation of the exponentially weighted Recursive Least Squares (RLS) adaptive filter algorithm.

Parameters
  • length (int) – the length of the filter

  • lmbd (float, optional) – the exponential forgetting factor (default 0.999)

  • delta (float, optional) – the regularization term (default 10)

  • dtype (numpy type) – the bit depth of the numpy arrays to use (default np.float32)

reset()

Reset the state of the adaptive filter

update(x_n, d_n)

Updates the adaptive filter with a new sample

Parameters
  • x_n (float) – the new input sample

  • d_n (float) – the new noisy reference signal