Metadata-Version: 1.1
Name: fir1
Version: 1.3.0.11
Summary: Efficient FIR realtime filter
Home-page: https://github.com/berndporr/fir1
Author: Bernd Porr
Author-email: mail@berndporr.me.uk
License: MIT
Description: ====
        Fir1
        ====
        
        An efficient Finite Impulse Response (FIR) filter class
        written in C++ with python wrapper.
        
        Adaptive filtering is also implemented using the Least Mean 
        Square (LMS) or Normalised Least Mean
        Square (NLMS) algorithm.
        
        Installation
        ============
        
        Linux
        -----
        
        If you want to install it via pip you first need
        to install the fir1 filter binaries::
        
            sudo add-apt-repository ppa:berndporr/usbdux
            sudo apt-get update
            sudo apt install fir1
            sudo apt install fir1-dev
        
        Then install the python package with pip::
        
            pip3 install fir1
        
        You can also install from source::
        
            git clone https://github.com/berndporr/fir1
            cd fir1
            cmake .
            make
            make install
            python3 setup.py install
        
        
        Windows
        -------
        
        There is a pre-compiled package which can be installed
        via pip::
        
            pip3 install fir1
        
        If you want to compile from source you first need to
        build the static fir windows library which is called
        `fir_static.lib`. Open the command line and type::
        
            cmake -G "Visual Studio 15 2017 Win64" .
        
        Then start Visual Studio and build `fir.sln`. Go
        back to the command line and type::
        
            python setup.py install
        	
        	
        Usage
        =====
        
        Realtime filtering
        ------------------
        
        The filter is a realtime filter which receives samples
        one by one so it can process data as it arrives from
        an ADC converter. This is simulated here with the for loop::
        
            import fir1
            b = signal.firwin(999,0.1)
            f = fir1.Fir1(b)
            for i in range(len(noisy_signal)):
                clean_signal[i] = f.filter(noisy_signal[i])
        
        The constructor ``Fir1()`` receives the filter coefficients 
        (= impulse response) and then filtering is performed 
        with the method ``filter()``.
        
        
        LMS adaptive filter
        -------------------
        
        The file `lms_50Hz_ecg_filter.py` removes 50Hz from 
        an ECG with the help of the lms filter. 
        The filter learns its own frequency response from a
        reference 50Hz sine wave. 
        
        Both the demo file and an explanation how the LMS
        filter works can be found on the homepage of the
        project:
        
        https://github.com/berndporr/fir1
        
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
