Least Mean Squares

Least Mean Squares Family

Implementations of adaptive filters from the LMS class. These algorithms have a low complexity and reliable behavior with a somewhat slower convergence.

class pyroomacoustics.adaptive.lms.BlockLMS(length, mu=0.01, L=1, nlms=False)

Bases: pyroomacoustics.adaptive.lms.NLMS

Implementation of the least mean squares algorithm (NLMS) in its block form

Parameters:
  • length (int) – the length of the filter
  • mu (float, optional) – the step size (default 0.01)
  • L (int, optional) – block size (default is 1)
  • nlms (bool, optional) – whether or not to normalize as in NLMS (default is False)
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.lms.NLMS(length, mu=0.5)

Bases: pyroomacoustics.adaptive.adaptive_filter.AdaptiveFilter

Implementation of the normalized least mean squares algorithm (NLMS)

Parameters:
  • length (int) – the length of the filter
  • mu (float, optional) – the step size (default 0.5)
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