Padasip: Python Toolbox for Adaptive Signal Processing

repository·master·Indexed 43 days ago

https://github.com/matousc89/padasip

An open-source Python library for adaptive signal processing, including filtering, prediction, reconstruction, and novelty detection. It provides a wide range of adaptive filters such as the LMS family (LMS, NLMS, LMF, NLMF, SSLMS, NSSLMS), RLS, GNGD, AP, GMCC, OCNLMS, and Llncosh, as well as VSLMS with Ang, Benveniste, and Mathews adaptations. Additionally, it includes preprocessing tools like PCA and LDA, and detection tools such as ELBND, Learning Entropy (LE), and Extreme Seeking Entropy (ESE).

Tokens
1.5K
Snippets
4
Records
14
Agent score
56%

What's inside Padasip

  1. Overview of Padasip capabilities

    master

    Padasip is a Python library designed to simplify adaptive signal processing tasks, including filtering, prediction, and reconstruction. It is optimized using numpy for efficient array operations. The library supports two primary usage modes:

    1. Dataset processing: Batch processing of existing signal datasets.
    2. Real-time processing: Sample-after-sample feeding for real-time measuring applications.
  2. Use Variable step-size least-mean-square (VSLMS) with Ang's adaptation

    master

    The padasip.filters.vslms_ang module implements the Variable step-size least-mean-square (VSLMS) algorithm using Ang's adaptation method. This filter is used for adaptive signal processing where the step-size is adjusted dynamically to balance convergence speed and steady-state error.

    To use this filter, import the VSLMSAng class from padasip.filters.vslms_ang and initialize it with your desired filter order and step-size parameters.

    from padasip.filters.vslms_ang import VSLMSAng
    
    # Example initialization (parameters depend on specific implementation details)
    # filter = VSLMSAng(n=filter_order, mu=step_size_parameter)
    # filter.run(x, d)
  3. Use the Online centered normalized Least-mean-square (OCNLMS) filter

    master
    The padasip.filters.ocnlms module provides the Online centered normalized Least-mean-square (OCNLMS) filter. This filter is part of the adaptive filtering suite in padasip and is used for online signal processing where the filter coefficients are updated incrementally as new data arrives.
  4. Use the Least-mean-fourth (LMF) filter

    master
    The padasip.filters.lmf module provides an implementation of the Least-mean-fourth (LMF) adaptive filter. This filter is an adaptive algorithm used for signal processing, specifically designed to minimize the fourth-order moment of the error signal, which can be more robust than the Least-mean-squares (LMS) algorithm in certain non-Gaussian noise environments.
  5. Use the Normalized Least-mean-fourth (NLMF) filter

    master

    The padasip.filters.nlmf module provides an implementation of the Normalized Least-mean-fourth (NLMF) adaptive filter. This filter is a variation of the LMS algorithm that uses the fourth power of the error signal to update weights, which can be more robust in certain non-Gaussian noise environments.

    To use this filter, import the NLMF class from padasip.filters.nlmf and initialize it with your desired filter parameters (such as n for the filter order and mu for the step size).

  6. Use Variable step-size least-mean-square (VSLMS) with Mathews's adaptation

    master
    The padasip.filters.vslms_mathews module provides an implementation of the Variable Step-Size Least-Mean-Square (VSLMS) algorithm using Mathews's adaptation method. This filter is designed to adapt its step size dynamically to improve convergence speed and steady-state error performance in adaptive filtering tasks.
  7. Use the Normalized Least-mean-square (NLMS) filter

    master

    The padasip.filters.nlms module provides an implementation of the Normalized Least-mean-square (NLMS) adaptive filter. This filter is a variation of the LMS algorithm that normalizes the step size by the power of the input signal, making it more stable and robust to variations in signal amplitude.

    To use this filter, you typically instantiate the NLMS class from the padasip.filters.nlms module. You will need to provide parameters such as the filter order and the step size (adaptation rate).

  8. Use the Normalized Sign-sign Least-mean-square (NSSLMS) filter

    master

    The padasip.filters.nsslms.NSSLMS class implements the Normalized Sign-sign Least-mean-square algorithm. This filter is used for adaptive signal processing where the update step uses the sign of the error rather than the error itself, and the step size is normalized by the power of the input signal to improve stability and convergence.

    from padasip.filters import NSSLMS
    
    # Example initialization (actual parameters depend on your signal requirements)
    # n: filter order
    # mu: step size
    filter = NSSLMS(n=32, mu=0.1)